学校の課題で、教授は、プログラムで作成したバックグラウンド プロセスの状態を保存し、各プロセス エントリが「進行中」または「完了」のプロセス テーブルに保存するように求めています。プロセスが完了した (終了した) かどうかを確認するには、私の教授はこれを行うためにwaitpid()を使用する必要があります。
バックグラウンドで作成したすべてのプロセス(sleep()の束)をループし、各プロセスのIDでwaitpid()かどうかを確認して各プロセスを確認するため、これを行う方法がわかりませんwaitpid() の引数として -1 以外 (エラーではない) を返すと、そのプロセスが終了しているかどうかを本当に知りたいときに、各プロセスがフォアグラウンドにジャンプします。
教授の元の質問:
BACKJOBS: バックグラウンド ジョブとその現在のステータスのリストを出力するコマンド。この機能は、tcsh を使用する場合の jobs コマンドに似ています。各ジョブの現在のステータス (進行中または完了) は、waitpid システム コールを使用して判断できます (詳細については、man waitpid を参照してください)。エラーを報告する呼び出しは、既に完了したものになるため、ステータスは「完了」になります。エラーにならない通話のステータスは「進行中」になります。