我有一个程序"Sample",它从标准输入(stdin)和非标准文件描述符(3或4)中读取输入,如下所示:
int pfds[2];
pipe(pfds);
printf("%s","\nEnter input for stdin");
read(0, pO, 5);
printf("\nEnter input for fds 3");
read(pfds[0], pX, 5);
printf("\nOutput stout");
write(1, pO, strlen(pO));
printf("\nOutput fd 4");
write(pfds[1], pX, strlen(pX));
现在我有另一个名为“Operator”的程序,它使用execv在子进程中执行上述程序(Sample)。现在我想通过“Operator”向“Sample”发送输入。
pipe
系统调用创建第二组管道,并执行dup2(pfds_2[0], 4)
。从父进程的pfds_2[1]
写入将传递到子进程的文件描述符4
。 - Blagovest Buyuklievpopen
写入除了stdin
以外的任何东西。 - Blagovest Buyukliev