C:fork()后关闭(2)?

时间:2011-05-17 23:09:20

标签: c fork

快速提问,希望有人可以验证。在fork之后,如果您在父级中调用close(2),则子级中的stderr不受影响。但是,如果您在子项中调用close(2),则父项中的stderr将关闭。那似乎对吗?我在FreeBSD中测试了这个,但似乎是这样,但我不确定为什么。我希望他们俩既不会相互影响,也不会相互影响,但不是这样。

有什么见解?

1 个答案:

答案 0 :(得分:5)

在fork之后,父级中的每个打开文件描述符都会被复制,因此在之后的任何关闭都不会影响父级或子级。

除非你做得不好(即不检查fork()系统调用的输出)。