fork と execv を使用して別のプロセスを起動するアプリケーションを作成しました。ステータスを通知するパイプを作成し、起動したプロセスのメイン エントリから、正しく起動されたことを通知するバイトを書き込みます。それ以外の場合、フォークされたプロセスで書き込みパイプが閉じられているため、read は 0 を返します。
唯一の問題は、プロセスが起動しない場合 (ライブラリがない場合) です。このことについて stderr にメッセージが表示されます。メッセージはシェルに書き込まれます。何が問題なのか。静かにやればいいのに。ただし、execv の前に close(2) を実行すると、何が必要かというメッセージが表示されません。それでも、stderr 用に fd 2 を開いたままにしたいと思います。