分岐された子プロセスは常に親プロセスのファイルIDと同じファイルIDを持ちますか?

分岐された子プロセスは常に親プロセスのファイルIDと同じファイルIDを持ちますか?

素朴な質問かもしれませんが、open親呼び出し時にファイルIDが私に返されます4

子プロセスが次のことを保証されますか?いつも4ファイルIDも取得しますか?

ベストアンサー1

成功したopen呼び出しは、未使用のファイル記述子として最小数を返します。

したがって、open4 が返されると、ファイル記述子 0-3 はすでに使用中であることを意味します。 a はfork子プロセスに同じファイル記述子を提供するため、子プロセスも fd 0-3 を使用しており、fd 4 は使用可能なので、a の直後に親プロセスとopen子プロセスで 2 回の呼び出しが成功forkすると同じ番号が返されます。ただし、後で親または子がファイルを開いたり閉じたりすると、fork数字が変わる可能性があります。

open一般的に、妥当な理由があり、正しく予測できると確信していない限り、呼び出されたfdの予測には依存しないでください。

おすすめ記事