Linux と FreeBSD ではネットワークのプログラムが違う

2007-01-04 00:34:41 | | このエントリーを含むはてなブックマーク | Tag: c言語 unix ネットワーク パソコン プログラミング メモ 日記

ネットワークの授業の関係で、ヘッダを偽装したパケットを一つ流そうと思ってプログラムを書いたところコンパイルが通らない。

Linux と FreeBSD ではネットワークのプログラムが違う の続きを読む

exit をコールすると free される?

2006-10-26 14:28:56 | | このエントリーを含むはてなブックマーク | Tag: c言語 パソコン プログラミング メモリ管理

malloc free exit してみたら http://kmaebashi.com/.../malloc.html が引っかかった。ここには exit すると free しなくても OS が開放してくれると書いてある。

でも main で return 0; したら開放してくれないんだろうな……。

コメントアウトされたプログラム

2006-10-15 20:52:16 | | このエントリーを含むはてなブックマーク | Tag: c言語 sa sfc プログラミング 学校 日記 猫耳

再び課題の採点中ですよー。今回から課題提出システムが変わった関係で、採点プログラムを PHP から zsh スクリプトに変えました。

コメントアウトされたプログラム の続きを読む

課題の採点中

2006-10-09 00:54:05 | | このエントリーを含むはてなブックマーク | Tag: c言語 unix プログラミング 学校 授業 日記

授業のアシスタント*1をしていて、C 言語プログラミングの課題を採点中。40 人の課題を二つも採点とか面倒だ……。だからシェルで自動化させているのだが、日本語が Shift_JIS とかだと文字化ける。こういう人たちって、どういう環境でコンパイルしてたんだろう*2

  • 注1: SA: Student Assistant。
  • 注2: UNIX システムの授業だから、UNIX ライクな環境じゃないと後々ダメダメになりますけど。Cygwin はそこまでできるのかな?

C99 で _Bool 型が追加されていた

2006-10-09 00:08:20 | | このエントリーを含むはてなブックマーク | Tag: c言語 パソコン プログラミング メモ

初めて知った。既存のコードとぶつからないように _Bool がデフォルトで用いられる変数型名らしいが、stdbool.h を読み込むことで型名に bool、真偽値に truefalse をコード内に用いることが出来るらしい。

標準関数は自分で実装するしかないのか?

2006-09-17 13:51:32 | | このエントリーを含むはてなブックマーク | Tag: c言語 プログラミング 自作os

http://libc.blog47.fc2.com/。C++ での実装らしいけど、やっぱ自力でやるしかないのかなぁ。GNU 関連のソースを流用するのも手だけど、後々コードを公開したい時に GPL を適用しなきゃならないからなぁ(LGPL だったら良いけど)。まぁ個人的に使っている時は GNU ソースを使い、公開するときに自力で標準関数を実装するというのも手か。

標準関数は自分で実装するしかないのか? の続きを読む

ネットワークプログラミング with C

2005-12-21 00:53:59 | | このエントリーを含むはてなブックマーク | Tag: c言語 gcc unix ネットワーク プログラミング 課題

gcc のバージョンによって動作結果が違う……何でだっ!

void aaa(void){
struct katamari *hoge;

hoge = (struct katamari *)malloc(sizeof(struct katamari));
hoge->what = "hoge is hoge";
}

良い例が書けない……。えぇと、関数 aaa で構造体 katamari へのポインタ hoge をプロトタイプしておく。この状態で malloc してメモリを確保すると 1 回目は成功する。当然ながら 2 回目以降もメモリを確保し続けるはずなのに、 Debian with gcc v2.95 だと 2 回目の malloc で segmentation fault。まじありえない。Fedora Core with gcc v4.00 だと問題なし、って他のライブラリ関係ですか?

C言語

2005-12-06 14:49:53 | | このエントリーを含むはてなブックマーク | Tag: c言語 プログラミング ポインタ

ポインタ使うと頭がスパゲッティ

char *hoge = (char *)malloc(sizeof(char) * 10); // char 型 10 文字分
hoge = ""; // null で埋めておく
hoge[2] = 'c'; // 3 文字目に c を置く

これで segmentation fault。2 行目が原因で、空文字列は別のアドレスになるってね。