タグ

cに関するnabetamaのブックマーク (16)

  • WisdomSoft

    初心者からのプログラミング入門、ソフトウェア開発の学習を支援する WisdomSoft のホームページです。

  • C言語でもレガシーでも、TDD をやってやれないことはない(レガシーコード改善成分90%、TDD成分10%) - yujioramaの日記

    id:goyoki さんの次になるTDD Advent Calendar jp: 2011の9日目です。 まったく自重しない素敵エントリが続いているので、ここらで息抜きをしましょう。 TDD についての理論、情緒、実践についてはすでに語られてしまったので、現場で使われた話を書きたいと思います。 前提 このお話は フィクション です。 現実によく似た光景を見たり聞いたりしたとしても、それは幻想です。幻想のはずです。幻想ということにしてくださいお願いします。 はじめに そこには C 言語のシステムがありました。 規模にして数万行の中規模なシステム。 24時間365日動き続けることが要求されるもので、僕の仕事は、このシステムの中枢部をうまいこと改修することでした。 テストコードはあるものの、設計に大きな変更が入る前のプロダクトコードが対象となっていて、ユーティリティ関数以外のテストは全滅という、

    C言語でもレガシーでも、TDD をやってやれないことはない(レガシーコード改善成分90%、TDD成分10%) - yujioramaの日記
    nabetama
    nabetama 2011/12/09
  • Writing a C library, intro, conclusion and errata

    This is a series of blog-posts about best practices for writing C libraries. See below for each part and the topics covered. Table of contentsThe entire series about best practices for writing C libraries covered 15 topics and was written over five parts posted over the course of approximately one week. Feel free to hotlink directly to each topic but please keep in mind that the content (like any

  • Cによるsleep sortの実装がないのもどうかと思ったので書いてみた - kazuhoのメモ置き場

    http://www.yuyak.com/1339 を見て、Cによるsleep sortの実装がないのもどうかと思ったので書いてみた。シンプルですな。 #include <assert.h> #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char** argv) { int values[] = { 1, 9, 5, 3 }; int i; for (i = 0; i < sizeof(values) / sizeof(values[0]); i++) switch (fork()) { case -1: assert(0); break; case 0: /* child process */ sleep(values[i]); printf

    Cによるsleep sortの実装がないのもどうかと思ったので書いてみた - kazuhoのメモ置き場
  • RailsとCで広告システムを作って起業した話 - 最速配信研究会(@yamaz)

    4/10清澄白河で開催された大江戸ruby会議01で 「RailsとCで広告システムを作って起業した話」と題して話をしてきた。 speakerdeck.com 詳細はスライドに書いてあるが、弊社は全く後ろ盾などないスタートアップにもかかわらず、異様なまでに濃いrubyistを集めることができていて、発表後「どうやってそんなすごい人を集めることができたのか?」という質問をうけた。 実はこれも秘密はなく、「彼らは当時たまたま求職中であったり、転職したがってることをRails勉強会の後の飲み会で聞いたりしたので即スカウトした」というのが実際の所で、ぶっちゃけたところ運がよかったとしか言えない。 せいぜい教訓めいたことを言うならば「恋愛と同じく、振られた直後に隣にいるというのは割と重要だ」あたりだろうか。 大江戸Ruby会議01はとてもよい会議でした。ほんとはエンジニアを集めるのに札束が踊りまくっ

    RailsとCで広告システムを作って起業した話 - 最速配信研究会(@yamaz)
  • webdevlog » Blog Archive » JavaScriptとC言語で学ぶクロージャーと参照渡し

    今日読んだ『JavaScript 第5版』の8章らへんに載ってたやつ クロージャーを使いこなせれば一人前のJavaScripterだ!みたいなことが書いてあったので、時間をかけてでも理解しておきたい。だから忘れないうちにメモ。 会社に置いてあって持って帰れないから、うろ覚えだけど、こんなやつだった気がする。 Closure Factory – jsdo.it – share JavaScript, HTML5 and CSS makeClosure()のパラメータであるobjは、グローバル変数として宣言した var d 及び、var dd であるので、obj["get" + name] や obj["set" + name] は、そのオブジェクトのプロパティに関数を作ったということになる。 また、makeColusre()のスコープに存在するvar cValへアクセスするには、getN

  • unix のシグナル処理あれこれ - Emacs ひきこもり生活

    Linux で signal + マルチスレッド、というとハンドラであれこれしようとすると、これはもう悪夢のように大変でひとつ signal 処理用スレッドを用意するのが定石のようです。 さてはて、そんなことで FreeBSD もそういうコードを書いて fork した子供を回収してやろうとしたところ、全く動いていません… orz これはどうしたんだろう??と調べた結果 空の signal handler を signal でしこんでやると動きだすことがわかりました。 はてさて、これはカーネルにどんな実装の差があるのでしょうか? そして、他のBSDではどうなっているのでしょうか? これが今回の疑問です。 実験 ひとまずこんなコードを使って引数に 0-3 を渡して実験します。中身はこんな感じのプログラムです。 #include <stdio.h> #include <signal.h> #in

    unix のシグナル処理あれこれ - Emacs ひきこもり生活
  • C言語最大の欠点

    1980年代、筆者が高校生・大学生だったころに「C言語がすごい」という話を友人から聞いていた。しかし、当時の筆者が触れていたのはMSXパソコンのBASICと大学の汎用機のFortranくらいだった。C言語をやっと手に入れたのは、1992年の暮れである。清水の舞台から飛び降りるような気持ちでBorland C++の大箱を買って帰った。 それから20年近くが経過した今でも、C言語は「最強のプログラミング言語」と呼ぶべきポジションを確保し続けている。UNIXオペレーティングシステムとC言語が世界に与えたインパクトの大きさは、実に大きなものがあった。 ただ、C言語を学習したり評価したりする際には、C言語の大きな欠点を知っておく必要があるだろう。筆者が考えるその大きな欠点とは、「文字列の扱いが非常に面倒」であることだ。 「バッファオーバーフロー」を回避するのは大変 例を示そう。図1はC言語で記述した

    C言語最大の欠点
    nabetama
    nabetama 2010/10/21
    ユナイテッド航空が2002年に倒産したっていう記事のアーカイブをGoogle newsのbotが拾って、トップニュースとして紹介。ユナイテッド航空の株価が1/4になったという。え?この記事はbotによるものじゃないの!⁇
  • Perlゼミ(サンプルコードPerl入門)

  • 名著100選 - やねうらおブログ(移転しました)

    プログラミング関連 名著100選。 C/C++言語関連(10冊) id:yaneurao:20050514 データ構造とアルゴリズム関連(11冊) id:yaneurao:20050522 コンパイラ関連(12冊) id:yaneurao:20050912 名著100選とは違うが備忘用メモ 知識情報シリーズ → id:yaneurao:20060820

    名著100選 - やねうらおブログ(移転しました)
  • 第3回 Cの「ポインタ」を調査せよ!

    Cには「ポインタ(pointer)」という便利で厄介な機能がある。Cの学習者が最初に突き当たる壁だとよく言われる。百戦錬磨のベテランでさえ,ポインタがらみのバグは少なからず経験しているだろう。今回はCのポインタについて調べてみた。 アドレスを保持して何になる? ポインタは“point + er”→「ポイントするもの」→「指し示すもの」という意味で,メモリー上のデータを間接的に指し示すことが大きな役割だ…ってことは,ご存じだろう。 どのような変数も,使用する前に初期化しなければならない。ポインタ変数*1ももちろん変数のアドレスで初期化する必要がある。例えば,int型の変数をポインタを介して扱うなら,以下のようになる。 int *p;       ―― int型のポインタ変数pを宣言 int num;         ―― int型の変数numを宣言 num = 123;        ――

    第3回 Cの「ポインタ」を調査せよ!
  • Boost C++ Libraries Document

    ライブラリ . ドキュメント: 最新のリリース CVS(毎日更新) . ライセンス . Getting Started . 退行テスト: 一般的な情報 テスト結果 メーリングリストと ニュースグループ . Boost (Developers) . Boost Users . Project-Specific . Announcements . Discussion Policy サポート . FAQ . Request Support . Report Bugs . Suggest Features . Commercial Support . Also: Mailing Lists About . Formal Reviews . Review Schedule . Requirements . Guidelines . Submissions Other Resources . Fil

  • http://journal.mycom.co.jp/articles/2008/06/17/C/menu.html

  • 連載 よくわかるC言語----目次:ITpro

    この連載に目を止め,「読んでみようか」と思ってくれた皆さんは,これまで,どんなプログラム言語の経験があるでしょうか? 「JavaScriptなどのWeb系のスクリプト言語はよく使う」,「Visual BasicやJavaでアプリケーションを作っているのだけど,基を確認したくて…」,あるいは「連載1回目だし,これからプログラミングを学びたい」など,いろいろな方がいらっしゃると思います。 連載は,「C言語」というプログラミング言語の“定番”を通して,あらゆるプログラミングに共通する基礎となる部分を,じっくり解説していきます。初心者の方はもちろん,プログラミング経験のある方も自分の知識を再確認するのにきっと役立つと思います。 ・第1回 もう一度,C言語から始めよう ・第2回 変数の性質を理解しよう ・第3回 制御構文がわかればプログラムの「流れ」がわかる ・第4回 変数のスコープをアドレスを

    連載 よくわかるC言語----目次:ITpro
  • 2NT -無料ブログ 無料ホームページ 等-

  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

    OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr

    OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん
  • 1