无名管道
只能是亲缘关系的进程间通信
博文
https://www.cnblogs.com/fangshenghui/archive/2004/01/13/4039833.html
编程步骤:
步骤 | 进程1 | 进程2 | 使用函数 |
---|---|---|---|
1 | 建立管道文件 | pipe | |
2 | 读写数据 | 读写数据 | write/read |
3 | 关闭管道 | 关闭管道 | close |
使用实例
//建立管道
int fds[2];
pipe(fds);
int pid = fork();
if(pid ==0){
close(fds[1]);
int i=0;
for(i=0;i<100;i++){
int x;
//读管道
read(fds[0],&x,sizeof(x));
printf("child read %d\n",x);
fflush(stdout);
}
//关闭管道
close(fds[0]);
exit(0);
}else{
close(fds[0]);
int i;
for(i=0;i<200;i++){
//写管道
write(fds[1],&i,sizeof(i));
usleep(200000);
}
//关闭管道
close(fds[1]);
exit(0);
}