千家信息网

Linux进程通信之FIFO如何实现

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关Linux进程通信之FIFO如何实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。FIFO通信(first in first out)FIFO 有
千家信息网最后更新 2026年11月01日Linux进程通信之FIFO如何实现

这篇文章给大家分享的是有关Linux进程通信之FIFO如何实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

FIFO通信(first in first out)

FIFO 有名管道,实现无血缘关系进程通信。

  • 创建一个管道的伪文件

    • a.mkfifo testfifo 命令创建

    • b.也可以使用函数int mkfifo(const char *pathname, mode_t mode);

  • 内核会针对fifo文件开辟一个缓冲区,操作fifo文件,可以操作缓冲区,实现进程间通信-实际上就是文件读写

man 3 mkfifo

#include #include int mkfifo(const char *pathname, mode_t mode);

注意事项:

FIFOs
Opening the read or write end of a FIFO blocks until the other end is also opened (by another process or thread). See
fifo(7) for further details.

打开fifo文件时候,read端会阻塞等待write端open,write端同理,也会阻塞等待另外一段打开。

代码示例:
file_w.c 写端

#include #include #include #include #include #include #include #include int main(int argc, char *argv[]) {  if(argc != 2) {    printf("./a.out filename1\n");    return -1;  }  printf("begin open w\n");  int o_ret = open(argv[1], O_WRONLY);  printf("end open w\n");  char buf[256];  int num = 0;  while (1) {    memset(buf, '\0', sizeof(buf));    sprintf(buf, "xiaoming--%d", num++);    printf("strlen(buf) = %d\n", strlen(buf));    write(o_ret, buf, strlen(buf));    sleep(1);  }  close(o_ret);  return 0;}

file_r.c 读端

#include #include #include #include #include #include #include #include int main(int argc, char *argv[]) {  if(argc != 2) {    printf("./a.out filename1\n");    return -1;  }  printf("begin open r\n");  int o_ret = open(argv[1], O_RDONLY);  printf("end open r\n");  char buf[256];  int num = 0;  while (1) {    memset(buf, '\0', sizeof(buf));    read(o_ret, buf, sizeof(buf));    printf("strlen(buf) = %d\n", strlen(buf));    printf("read is%s\n", buf);  }  close(o_ret);  return 0;}

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

感谢各位的阅读!关于"Linux进程通信之FIFO如何实现"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

通信 文件 进程 系统 操作系统 内容 更多 管道 篇文章 缓冲区 缓冲 阻塞 不错 实用 有名 自由 事项 代码 任务 内核 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网与科技 西安纸贵互联网科技有限公司 互联网是不是新科技 互联网金融科技委员会 互联网科技大会案例 滨湖区互联网智能科技产品供应 互联网科技公司招聘 互联网科技公司需要的职位 互联网科技产品 宁夏科技产业互联网案例 哈尔滨屹滨互联网科技有限公司 健康食品互联网创新科技园项目 广州新华互联网科技学校电竞方面 互联网科技如何创业 南通创西澳互联网科技有限公司 深圳无忧互联网科技 四川互联网展示科技馆设计 从那以后互联网科技有限公司 银川新华互联网科技学校是国营吗 瑞安市蟠桃会互联网科技有限公司 科技互联网企业 科技互联网项目 狮子座互联网科技培训 青海省互联网新科技 互联网科技大奖都有哪些公司 小米互联网科技园入驻 半导体是互联网高科技吗 新氧科技和美国互联网有关系吗 安徽零酒互联网科技有限公司 上海互联网科技园景观
0