フォークの後、子が Excele() コマンドを使用して実行するシナリオがあります
小さなシェル スクリプトを実行する Linux システム コマンド。
その後、親は wait() のみを実行します。だから私の質問は、親は実行しますか
子プロセスが実行する execle() の後に待機しますか?
ありがとうスミタ
フォークの後、子が Excele() コマンドを使用して実行するシナリオがあります
小さなシェル スクリプトを実行する Linux システム コマンド。
その後、親は wait() のみを実行します。だから私の質問は、親は実行しますか
子プロセスが実行する execle() の後に待機しますか?
ありがとうスミタ
あなたが何を求めているのかよくわかりませんが、親は wait() システムコールにあり、子が終了するまでそこで待機します。出口からそれを取り出す信号のようなものは他にもあります。
エラー時に誤って親コードに陥らないように、子プロセスで注意する必要があります。
execve
これ (子プロセスが親プロセスの後に何かを実行しfork
、親プロセスがwait
それを実行waitpid
する) は、非常に一般的なシナリオです。ほとんどのシェルはこのように動作しています。たとえばstrace -f
、対話型bash
シェルで詳細を学習したり、次のような単純なシェルのソース コードを調べたりすることができます。sash
fork(2) syscall の後、親プロセスと子プロセスが同時に実行される場合があることに注意してください(たとえば、特にマルチコア マシンでは同時に)。