日期:2014-05-16  浏览次数:20785 次

fork一个子进程后在打开一个文件,如何在子进程中使用这个打开的文件描述符号
我在一个程序中先fork一个子进程,后在int fd=open()一个文件,
那么如何让我先前创建的子进程获得这个fd,并可读写文件.


注意是先fork子进程,在open文件,顺序不要搞错了。 


------解决方案--------------------
lz的意思是在父进程打开的文件描述字传给子进程?因为子进程继承父进程打开的描述字,所以直接用就可以了,但是不保证父进程已经打开了该描述字,所以你可以在子进程睡眠一会。如果是要把子进程打开的描述字传递给父进程可以使用UNIX域来传递,通过用sendmsg中带上辅助数据可以达到目的,具体可以参看unp