Linux C 父子进程 与 有名管道
来源:互联网 发布:java svn插件 编辑:程序博客网 时间:2024/05/16 23:01
1、mkfifo() 函数 创建管道文件的节点
2、open()函数 在内核创建管道空间,库<fcntl.h>
read()
write()
3、fork() 函数 父子进程,库<sys/types.h>
代码 - - mkfifo()创建管道文件节点
1 #include <stdio.h> 2 3 int main() 4 { 5 int ret; 6 //管道文件、字符设备、块设备、套接字 只有文件节点,不占磁盘空间 7 ret = mkfifo("./myfifo",0777); //mkfifo()只是创建了管道文件节点,并没有在内核空间创建管道空间 8 //mkfifo()创建管道节点;open()在内核创建管道空间 9 if(ret < 0) 10 { 11 printf("myfifo create failure.\n"); 12 return -1; 13 } 14 15 printf("myfifo create success.\n"); 16 return 0; 17 }
代码 - - open()在内核创建管道空间
1 #include <stdio.h> 2 #include <sys/types.h> //fork() 3 #include <fcntl.h> //open()、write()、read() 4 5 int main() 6 { 7 pid_t pid; //进程号 8 int process_inter = 0; 9 int process_inter_bak = 0; 10 11 pid = fork(); //创建父子进程 12 if(pid == 0) //子进程 13 { 14 int i = 0; 15 int fd2; 16 fd2 = open("./myfifo",O_RDONLY); //在内核创建管道空间 17 read(fd2, &process_inter_bak, 4); //读取管道 18 close(fd2); 19 while(process_inter_bak == 0); 20 for(i = 0; i < 5; i++) 21 { 22 printf("this is child process i = %d\n",i); 23 usleep(100); 24 } 25 } 26 if(pid > 0) //父进程 27 { 28 int i = 0; 29 int fd1; 30 for(i = 0; i < 5; i++) 31 { 32 printf("parent process i = %d\n",i); 33 usleep(100); 34 } 35 process_inter = 1; 36 fd1 = open("./myfifo",O_WRONLY); 37 write(fd1, &process_inter, sizeof(process_inter)); //写入管道 38 while(1); 39 close(fd1); 40 } 41 42 return 0; 43 }
执行:
阅读全文
0 0
- Linux C 父子进程 与 有名管道
- linux进程通信-有名管道
- linux进程通信--有名管道
- [Linux C编程]有名管道实现守护进程
- Linux c==进程通信--有名管道(4)
- Linux进程间通讯--管道(有名管道
- linux c之通过管道父子进程实现同步通信
- linux进程通信----FIFO(有名管道)
- linux 进程编程:有名管道fifo
- linux进程间通信之有名管道
- Linux进程间的通信——有名管道fifo与守护进程deamon
- Linux环境进程间通信:管道及有名管道
- Linux进程间通信:管道及有名管道
- Linux环境进程间通信:管道及有名管道
- Linux环境进程间通信: 管道及有名管道
- Linux环境进程间通信:管道及有名管道
- Linux进程间通信:管道及有名管道 收藏
- Linux--进程间通信(管道及有名管道FIFO)
- 使用TensorFlow编写损失函数 交叉熵(cross entrophy)| 均方误差(MSE)
- Havel定理
- Shell判断字符串包含关系的几种方法
- iOS"死灰复燃SDK"
- 二叉树三种遍历方式的六种实现方法
- Linux C 父子进程 与 有名管道
- Android LayoutInflater总结
- 关于使用广播来通知另外一个界面ui的变化。
- 学生缴费案例
- 一个适用于小数range功能的python实现
- 什么是程序 和转义符
- Litepal的使用
- 3.2.8--命运
- Linux常用查看硬件信息命令总结