子プロセスがexec関数の1つを呼び出した後、そのプロセスが子プロセスの1つのプロセスグループIDを変更できないのはなぜですか?

子プロセスがexec関数の1つを呼び出した後、そのプロセスが子プロセスの1つのプロセスグループIDを変更できないのはなぜですか?

APUEから:

プロセスは、自分または子プロセスのプロセスグループIDのみを設定できます。さらに、子プロセスはexec関数の1つを呼び出した後、子プロセスの1つのプロセスグループIDを変更することはできません。

なぜ「子プロセスがexec関数の1つを呼び出した後に子プロセスの1つのプロセスグループIDを変更できないのですか?」ありがとうございます。

ベストアンサー1

「正式な」理由はわかりませんが、プロセスでPGIDが突然変更されると予想する必要はないと思います。

したがって、これはシェルパイプを設定できるようにフォーク後に許可されますが、execve()新しいバイナリが特定の状態を見つけた後は(新しいバイナリが変更することを決定するまで)永続的でなければなりません。

おすすめ記事