ジョブ制御を含む多くのことを実行できるミニ シェルを作成する必要があります。fork と execvp を使用して新しいジョブを作成することができました。しかし、execvp によって実行されるプログラムの終了コードも取得したいと考えています。他の投稿から調べたものから、 を使用してこれを行うことができますif(WIFEXITED(status))
。
ただし、ユーザーがシェルでプロセス名とともに「&」を入力した場合は、プロセスをバックグラウンドで実行する必要もあります。したがって、子プログラムがバックグラウンドで終了している間、親プロセスが待機するのを待つのは意味がありません。子プロセスが終了したことを親プロセスに通知するように設定できる割り込みはありますか? if(WIFEXITED(status))
次に、ステートメントを使用して終了コードを取得できます。
例
sleep 100 &
フォアグラウンドで他のシェルコマンドを同時に実行できる間、バックグラウンドで実行されます。