File descriptors are always passed between a parent and child process
当您fork
进行处理时,在父级(在时fork()
)打开的文件描述符将隐式传递给子级。无需显式发送它们。
例如:
伪代码如下所示:
在过程 :
fd = open_socket_or_file;
char str_fd[3];
str_fd[0]=fd;
str_fd[1]=fd;
str_fd[2]=0;
if(fork()==0)
{
execl("./B",str_fd,NULL);
}
在子进程 您可以执行以下操作:
int fd = argv[1][0];
/* Now do whatever you want with the fd...*/