素朴な質問かもしれませんが、open
親呼び出し時にファイルIDが私に返されます4
。
子プロセスが次のことを保証されますか?いつも4
ファイルIDも取得しますか?
ベストアンサー1
成功したopen
呼び出しは、未使用のファイル記述子として最小数を返します。
したがって、open
4 が返されると、ファイル記述子 0-3 はすでに使用中であることを意味します。 a はfork
子プロセスに同じファイル記述子を提供するため、子プロセスも fd 0-3 を使用しており、fd 4 は使用可能なので、a の直後に親プロセスとopen
子プロセスで 2 回の呼び出しが成功fork
すると同じ番号が返されます。ただし、後で親または子がファイルを開いたり閉じたりすると、fork
数字が変わる可能性があります。
open
一般的に、妥当な理由があり、正しく予測できると確信していない限り、呼び出されたfdの予測には依存しないでください。