第八回スパルタンプログラミング
ナイフ? ノンノン フォーク!!
メールのやり取りの語尾に「もす」を付けるのがはやり、東山動物園近くの太平閣へ行き、薄焼き卵で巻かれた春巻きと腸詰めうめぇーとなった、次の日、UNP vol1を第5章まで読んでforkのテストをこりこり書く。ごりごりは書けない。
いっしーがやさしい。タバコやめたからだろうか(彼が)。プハー
知らないことは覚えましょ
コマンド
- ps:実行中ファイル名
- kill:プロセスおよびジョブを終了する
/etc/services
ポートを11111でlistenにしたソケットをnetstatで確認しようとしたら見つからなかった。ポートを9877に変えると見つかった。 netstat両者の結果を見比べるとvceがどうやら11111だということがわかる。 ネットで調べても英語でしんどくて、いっしーに聞いたら/etc/services見てみろとのこと。
うーむ、ポート番号とサービス名との対応表が在る。
forkまとめ
- forkは親プロセスの複製をつくる。
- プロセス内の戻り値は親なら子プロセスのIDが返り、子なら0が返る。
- 返り値で条件分岐して、それぞれの振る舞いをかえる。
- 子プロセスはexitで終了しても、zombieとして残る。
- zombieを残さないように処理するには、exit終了時に子プロセスが返すSIGCHLDシグナルをSignal(SIGCHLD, sig_chld)で捕捉し、sig_chld(UNP Vol1 p.125)内でwaitpidで処理する。
- waitやwaitpidは、子プロセスの終了を待ち、終了状態を取得することでzombieを開放する。
のんびり勉強
- listen関数の第2引数の値がいくつが良いかの議論は(UNP Vol1 p.92)
- lldb関連(いっしーが調査してくれたモス)
- lldbチュートリアル
- gdb <-> lldb
- Appleによるlldbの使用例 :gdbとの対になってて見やすい。
- GUI:こういうの作れるひとはすんごいなぁ