いくつかのフォークを伴う宿題のプログラムを書いていますが、変数の共有とゾンビプロセスの処理については少しわかりません。
グローバル変数がある場合、親とすべての子はそれらのグローバル変数の同じ「コピー」で動作しますか?そうでない場合、それらを(
vfork
?)に到達させる方法はありますか?ゾンビのプロセスが何であるかは知っていますが、それらを取り除く方法がわかりません。
wait()
私のプログラムは多くの一時的なプロセスをスピンオフするので、それぞれを個別に実行できるかどうかはわかりません。親プロセスが終了すると、それに関連付けられているすべてのゾンビが削除されますよね?親が子の前に終了した場合はどうなりますか?子供はゾンビが終わったときにゾンビを置き去りにしますか(これらはinit()
定期的にクリアされますか)?子プロセスの結果は実際には気にしないので、質問2を完全に回避する可能性がありますが、ゾンビをまったく残さないようにする方法はありますか?何かを見ました
signal(SIGCHLD, SIG_IGN)
が、使い方がわかりません。見つけたマンページはやや鈍感でした。