- 论坛徽章:
- 0
|
有关管道的问题
我做了一下管道,这个可以实现父进程通过缓冲区得到子进程得标准输出.可是离我得要求还有差距.我是有多个子进程,一个父进程
#include <stdio.h>;
#include <stdlib.h>;
#include <fcntl.h>;
int main(int argc,char *argv[])
{
int fd[2];
pid_t childpid;
char buf[4096];
if(pipe(fd)<0)
{
printf("111\n" ;
exit(1);
}
if((childpid=fork())==0)
{
dup2(fd[1],STDOUT_FILENO);
close(fd[0]);
close(fd[1]);
execl("/bin/ls","ls","-l",(char *) 0);
perror("exec is faild" ;
}
else
{
read(fd[0],buf,4096);
close(fd[1]);
close(fd[0]);
printf("444[%s]\n",buf);
}
return 0;
} |
|