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 }

执行:


Linux C 父子进程 与 有名管道相关推荐

  1. 2.12父子进程通过匿名管道通信

    目录 1.pipe函数 2.查看管道缓冲大小 1.pipe函数 #include <unistd.h> int pipe(int pipefd[2]);功能:创建一个匿名管道,用来进程间通 ...

  2. Linux中父子进程、兄弟子进程之间通信方式--匿名管道pipe(适用于有血缘关系的进程)

    文章目录 编程环境: 进程间通信 IPC: 匿名管道(pipe): 父子进程间通信: 兄弟子进程间通信: 管道的读写行为: 读操作: 写操作: 查看管道缓冲区大小: 设置管道的非阻塞属性: 下载地址: ...

  3. 【Linux系统编程】进程间通信--有名管道

    命名管道的概述 无名管道,由于没有名字,只能用于亲缘关系的进程间通信(更多详情,请看<无名管道>).为了克服这个缺点,提出了命名管道(FIFO),也叫有名管道.FIFO 文件. 命名管道( ...

  4. linux之父子进程的输出

    首先,我们来回忆一下父进程与子进程,前几节讲了如何创建子进程,像这样的,pid_t id = fork(); 这样我们就创建好了一个子进程,然而fork()函数的返回值是什么呢?这里要记住:子进程返回 ...

  5. Linux系统编程:fifo有名管道的使用

    fifo介绍 我们可以利用管道进行进程间通信,已经有匿名管道 为啥还要fifo 有名管道呢?有名管道是对匿名管道的一个补充,匿名管道是用在有血缘关系的进程间通信.fifo有名管道呢,可以用在任何进程间 ...

  6. Linux下父子进程的全局变量

    磨砺技术珠矶,践行数据之道,追求卓越价值  回到上一级页面: PostgreSQL杂记页     回到顶级页面:PostgreSQL索引页  [作者 高健@博客园  luckyjackgao@gmai ...

  7. linux父进程和子进程查看,linux查看父子进程

    python多进程代码 test.py #coding=utf-8 import multiprocessing import time def func(msg): print "msg: ...

  8. linux下父子进程共享socket,多进程共享socket(Linux,Win32)

    您可以共享一两个(或多个插座)在Linux进程和甚至是Windows. 在Linux(或POSIX类型的操作系统),用fork()将导致叉孩子有父母的所有的文件描述符的副本. 就算是没有关闭将继续共享 ...

  9. linux mkfifo 命令_linux 中有名管道mkfifo

    1创建管道并且发送 fifo #include //文件操作函数头文件 #include #include #include #include #include #include int main(i ...

最新文章

  1. 三数之和(三数不重复)
  2. 推荐8个鲜为人知,但是很有意思的工具,简洁又好用!
  3. CCAI 2019 | Shai Ben-David:人工智能的可学习性能否判定?
  4. 网络工程师成长日记365-IBIS西安工程回忆录
  5. 索引中丢失 IN 或 OUT 参数
  6. python循环写入csv文件_Python3.5想把抓到的股票信息以循环方式存入到csv文件中怎么做...
  7. C#学习之用迭代器实现枚举器
  8. win7的附件计算机没了,win7系统附件工具不见了的解决方法
  9. 二元最佳前缀码_贪心-最优前缀码
  10. [原]海纳百川 有容乃大:SparkR与Docker的机器学习实战
  11. 关于jupyter notebook闪退问题【我真真的够了,大家以后不要乱捣鼓电脑了,绝了】
  12. 程序猿的自救 从零备考NSCA/CSCS 2 阻力运动生物力学
  13. 【附源码】计算机毕业设计SSM网上旅游订票服务系统
  14. 全量表/增量表/快照表
  15. php 使用内置web服务器
  16. Cookie是什么及用法详解
  17. 关于SAP十个常见问题集锦
  18. Windows 10 配置OpenGL ES 3.0 环境
  19. 癌症有哪些数据集_癌症
  20. python交通流预测算法_基于机器学习的交通流预测技术的研究与应用

热门文章

  1. 省二计算机应用基础试题及答案,计算机应用基础试题及答案2
  2. 几个html页面怎么连接,如何使用flas连接我的两个HTML页面
  3. 机器人误触防熊喷雾24人住院?这个网站收集AI‘翻车’案例,所有‘罪证’都不放过
  4. Binder机制原理、源码、AIDL,IBinder,Binder,IInterface,BinderDriver,需要的都在这里了
  5. 自制USB充电接口,手机不显示充电状态的原因
  6. scim 跨域身份管理介绍(一)
  7. note_2019_9
  8. 2022 第五届 浙江省大学生网络与信息安全竞赛技能赛 预赛 Writeup,5题
  9. Java23种设计模式总结-学而不习则罔
  10. 日语口语:生活中常见的日语短语