プログラム

File::Find

id:fbisさんにアドバイスもらったので調べてみる。File::Find::Ruleっていうのは標準モジュールじゃないらしく手元のクイックリファレンスに載っていない。とりあえず後回しにしてFile::Findを試してみる。ActivePerlのリファレンスを読んでもよくわからん。…

 プロトタイプ宣言中の配列の引数

id:takehikomさんの日記でちょっと気になったのでコメントしたら、さすがに大学で教えているだけあって裏をとろうとしてくださる。少し申しわけなくなってしまった。 要は関数の引数として配列は渡せませんよね?渡せるのはその配列の先頭要素を指すポインタ…

 ディレクトリの読み方

その手の作業はperlでしていたのでCでディレクトリを読む方法を調べてみた。なんと標準Cではディレクトリを読むそうさって無いのね。まぁファイルシステムが無いような環境もあるからな。とりあえずgccで探してみる。opendir, readdir, closedirなんかで読む…

汎用的プログラムの方が容易

知り合いのCG集作りを手伝っている。素材の画像を渡されるのでフォルダ内の画像ファイルを読み込み、リストを作ってサムネイル付きのページとそこから1枚画像のページを生成する。 残っているスクリプトで一番古いものは2003のもの。それから毎年のように使…

再帰的にディレクトリをたぐるperlスクリプト

perlはたまに使うのだけれどなかなか関数を覚えていない。openとかopendirとか使うたびに引数の渡し方を調べている気がする。ウェブ上に残しておく方が後で検索しやすいので残しておく # 指定したディレクトリのファイル名から' ()'を取り去りアンダースコア…

MFC

今業務でMFCのプログラムを見ている。なーんかMFCのコードって読みにくくて勘がはたらかない。newしているところが見えなくて、deleteとの対応がつかないのが気持ち悪い。 まぁ一番の原因はVC++withMFCなのにおよそC++ではなくCのコードって言うあたりに原因…

入門書が教えてくれない配列の本当の使い方

元ネタは何年も前にネットで拾ったもの。もうどこだか覚えたいないし、まだ残っているかわからない。でも「配列は0から始まる整数からオブジェクトへの写像だ」ということを解説しているサイトを見たことがない。まずはお題。C言語のlocaltime関数から曜日を…

NULLポインタ、NULキャラ、ヌルストリング、0

NULL NULLポインタは無効なポインタを示しどんな有効なポインタと比較しても等しくならないことが保障されている。ポインタを要求する文脈で0が現れるとコンパイラはそれをNULLポインタに変換する。処理系によってNULLポインタのビットイメージがすべて0であ…

fcloseにNULLを渡せるか?

調べてみると少なくとも標準Cでは規定されていないみたい。fcloseにNULLを渡したときの動作についてはふれていないようだ。fopenに失敗するとNULLが返るので後始末は何でもfcloseと思っていたのだけどだめなのだな。freeに対してはNULL渡してOKなのに、、。 …

文字列リテラル中のナル文字

C言語勉強会にて、char の配列の途中に\0をセットすると文字列としてはそこで終端されると説明した。ある人が次のようなコードを試した。 char str[] = "0123456\0789"; /* 元々は"0123456789" */ printf("%s\n", str); コンソールに 0123456 と表示されると…

int a = 10;

id:kagamihogeさんのエントリに便乗するのだが、最近勉強会用に調べ物をしたことが関係あるので書いておく。a = 10;の意味がわからない人は確かにいる。これって抽象的な考え方ができないのだろうとおもふ。 □ + 5 = 10 の虫食い算はいいのにこれが x + 5 = …

Cにおける&演算子の優先度の件

今日お仕事でコードの確認をしていたのですがバグにどうしても気がつきませんでした。組み込みは今回の業務が初めてだったので、ビット演算の扱いに不慣れなことが原因。要約すると if (hoge & 0x3 == 0x2) { /* なんかの処理 */ } else { /* なんかの処理 *…

C言語とUnixの起源

新人研修用C言語の資料C言語の起源はUnixの起源に重なる。C言語はUnixを記述するためのものである。元々はプライベートなツールだった。 Multics〜GE-600のシステム GEとベル研の共同プロジェクトでGEがIBMから脱却し自社でメインフレームを持つという動機に…

PC watchにこんなコラムがあった。 http://pc.watch.impress.co.jp/docs/2005/0121/config035.htm そう言われるとオブジェクト指向って日本語の語順に近いって見方もできそうな気がしてきた。 まぁ受動的だったオブジェクトが能動的になったっていうのが本筋…