linux系统编程——管道编程实战
一、查看man手册
man 2 pipe
fork以后,父进程会拷贝一个空间给子进程,包括fd,父子进程的管道为同一个管道。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47#include <stdio.h> #include <unistd.h> #include <string.h> #include <stdlib.h> int main() { int fd[2]; int pid;//定义管道 char buf[128];//缓冲区 // int pipe(int pipefd[2]); if(pipe(fd)==-1)//创建管道 { printf("creat pipe failedn"); } pid=fork();//创建管道,调用子进程 if(pid<0) { printf("creat child failedn"); } else if(pid>0) { sleep(3); printf("this is fathern"); close(fd[0]); write(fd[1],"hello from father",strlen("hello from father")); wait(); //写入管道时,关闭fd[0] } else { printf("this is childn"); close(fd[1]); read(fd[0],buf,128); printf("read from father:%sn",buf); exit(0); //读入管道时,关闭fd[1]。 } return 0; }
父进程睡眠3秒,先让子进程运行
——@上官可编程
最后
以上就是飞快狗最近收集整理的关于linux系统编程——管道编程实战linux系统编程——管道编程实战的全部内容,更多相关linux系统编程——管道编程实战linux系统编程——管道编程实战内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复