私が理解したいのは、親プロセスがエクスポートした変数を子プロセスが継承する場所です。
私が知りたいのは、エクスポートされた環境変数を子プロセスが継承する場所です。 exec()システムコールがfork()によって生成された環境変数を上書きすることを理解しています...しかし、すべての環境変数がオーバーライドされると、exec()はどのようにエクスポートした環境変数を新しく作成されたサブプロセスに含めるのですか? ?私の推測は、エクスポートされた環境変数が何らかの方法で上書きの対象から除外されることです。しかし、これを確認することはできません。
編集する私の要件をより明確に表現するために質問を編集しました。
ベストアンサー1
グローバル環境変数はありません。彼らは両親から子供に渡されます。
fork
環境変数は変更されません。exec
e
事後修正は環境変数を変更しません。exec
変更後のe
上書き環境変数。
環境を変更するためにe
末尾のsを使用することに加えて、次のこともできます。exec
int pid = fork() //new process with same environment variables
if (pid == 0) {
putenv //add some environment variables
unsetenv //remove some environment variables
exec //replace program. non e version of exec.
} …