1

sighandler をセットアップしてから fork を実行するとします。子プロセスも sighandler を継承しますか?

4

2 に答える 2

2

Linuxのfork(2) マニュアルページを引用する:

fork()は、PIDとPPIDのみが異なり、リソース使用率が0に設定されているという点で、親プロセスとは異なる子プロセスを作成します。ファイルロックと保留中のシグナルは継承されません。

したがって、保留中の信号はfork()操作を通過しませんが、信号ハンドラー自体は通過します。信号は(親)プロセスに属するため、これは理にかなっています。

直接関係はありませんがexec()、aに続くことが多い-type呼び出しは、新しい実行可能ファイルがプロセスにロードされているため、すべてのシグナルハンドラーfork() を破棄します(現在シグナルを処理している関数を上書きします)。

于 2009-07-10T04:20:59.477 に答える
0

はい、fork() はプロセスを 2 つに分割します。親プロセスに適用可能なすべてのリソースは、子プロセスでも使用できます。

于 2009-10-07T08:29:21.850 に答える