2007年07月19日

ハック・ザ・NMap パート3

ハッカーへの一歩。

とりあえず、ということでNmapのmain.ccを見てみました。

/* Trap these sigs for cleanup */
#if HAVE_SIGNAL
signal(SIGINT, sigdie);
signal(SIGTERM, sigdie);
#ifndef WIN32
signal(SIGHUP, sigdie);
signal(SIGCHLD, reaper);
#endif
#endif

ああ、懐かしい・・・猫C言語のソースを見るの久しぶり・・・

思えば、会社に入って初めて覚えたのはC言語(Unix)だった。で、初めて開発したのは、C言語のUnixデーモンプロセスだったなあ。それから、UnixのInitデーモンもどきを開発したりしていました。

そのおかげで、Unix固有のプロセス通信・シグナル・プロセス管理・メモリ管理などのプログラミングのノウハウを身につけられました。

よく考えると、プロセス管理・シグナル管理手法などの”常識”をまとめた書籍ってみたことないなあ。会社でも口伝的なもので継承している気がします。

SIGCHLDも結構曲者なんですよね。親プロセス側で、非シグナルセーフな関数を使っていると、タイミング次第で子プロセスが終了してSIGCHLDを親プロセスが受信すると停止してしまったり。

色々と悩んだ思い出があります。
posted by 台北猫々 at 22:40| Comment(0) | TrackBack(0) | 日記
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/4753192

この記事へのトラックバック