假设我有一个过程
p
它使用文件描述符(例如未命名的管道)与其父进程通信。
p1
.
假设
磷
电话
fork()
创建子进程
c
就在那之后
Frk()
调用其中一个
exec
家庭功能。
默认情况下,即使使用
执行程序
. 所以
C
应该能够与
P1
,有其父
磷
打开文件描述符到
P1
.
我怎样才能在C源代码中得到这个文件描述符
C
如果只在
磷
(和)
P1
)?
为了举例说明我的意思,下面是
磷
和
P1
//p1 process
int fd[2];
pipe(fd);
pid_t p_pid, c_pid;
p_pid = fork();
if(p_pid == 0) // p process
{
/* p_pid closes up input side of pipe */
close(fd[0]);
c_pid = fork();
if (c_pid)==0 //c child process
{
exec("execution/child/process"...);
}
else
{
...// do p process parenting stuff
}
}
else
{
/* Parent p1 process closes up output side of pipe */
close(fd[1]);
}
现在
"execution/child/process"
有自己的源代码,我不能使用变量
fd
与…沟通
P1
因为它没有定义,但是文件描述符应该存在:那么如何引用它并使用它呢?