不希望父级及其子进程共享同一文件描述符表

时间:2011-05-06 04:25:24

标签: c process

我在程序A中打开一个文件。它的文件描述符是3.使用fork后跟一个execve我执行另一个程序B,我立即打开另一个文件。这个文件描述符是4.如果A和B没有共享文件描述符表,那么在B中打开的文件的文件描述符应该是3.我需要创建不共享父文件地址空间的子进程,包括打开文件。

非常感谢

2 个答案:

答案 0 :(得分:2)

孩子共享同一个FD表,你只是忘了在孩子中关闭它们或者将它们标记为接近执行。

答案 1 :(得分:1)

exec新进程之前关闭文件。在fork()exec()之间的代码中执行此操作。