linux 命名管道fifo实现进程间小数据通信
来源:互联网 发布:数组去重js 编辑:程序博客网 时间:2024/04/30 12:35
/* int mkfifo(const char *pathname, mode_t mode);
创建命名管道,成功返回0,失败返回-1。
程序运寻则操作的内容存在于管道文件中,一退出内容则被清空了。
EEXIST:用于判断命名管道文件是否存在,存在就可以不用创建。
*/
创建命名管道,成功返回0,失败返回-1。
程序运寻则操作的内容存在于管道文件中,一退出内容则被清空了。
EEXIST:用于判断命名管道文件是否存在,存在就可以不用创建。
*/
#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <errno.h> /* int mkfifo(const char *pathname, mode_t mode); 创建命名管道,成功返回0,失败返回-1。 程序运寻则操作的内容存在于管道文件中,一退出内容则被清空了。EEXIST:用于判断命名管道文件是否存在,存在就可以不用创建。 */#define FIFONAME "./lhw_fifo"#define FIFO_MODE 00777int main(int argc, int argv[]){int ret = -1;int fd = -1;char* buf[128] = {0};//创建命名管道if(-1 == (mkfifo(FIFONAME,00777/*FIFO_MODE*/) && (EEXIST != errno))){ret = -1;perror("mkfifo failed: ");goto _OUT;}//open fifofd = open(FIFONAME, O_RDWR);if(-1 == fd){perror("open failed: ");goto _OUT;}//判断是否为写if(0 == strcmp("write", argv[1])){ret = write(fd, "howaylee", sizeof("howaylee"));if(-1 == ret){perror("write failed: ");goto _OUT;}//sleep(10);while(1);//不能退出,一退出管道文件就被清空了}//判断是否为读if(0 == strcmp("read", argv[1])){ret = read(fd, buf, sizeof(buf));if(-1 == ret){perror("read failed: ");goto _OUT;}printf("buf = %s\n", buf);sleep(2);}_OUT:close(fd);return ret;}
本文转自:http://www.oschina.net/code/snippet_237505_8644
- linux 命名管道fifo实现进程间小数据通信
- 【Linux】进程间通信-命名管道FIFO
- 【Linux】进程间通信-命名管道FIFO
- 【Linux进程间通信】 - 命名管道FIFO
- 【Linux】进程间通信-命名管道FIFO
- Linux进程间通信-FIFO(命名管道)
- 【Linux】进程间通信-命名管道FIFO
- 命名管道(FIFO) Linux进程进程间的通信之命名管道(FIFO)
- 进程间通信--管道、命名管道、FIFO
- Linux编程练习 --进程间通信3--FIFO命名管道
- Linux下进程间通信机制:FIFO(命名管道)
- Linux下进程间通信机制:FIFO(命名管道)
- Linux进程间通信之命名管道(FIFO)
- Linux进程通信:命名管道FIFO小结
- Linux进程通信:命名管道FIFO小结
- Linux进程通信:命名管道FIFO小结
- 进程间通信--FIFO命名管道
- 进程间通信___命名管道(FIFO)
- 给浮躁的软件业同仁
- C#中this的用法,你用过几种?【含源码示例】
- 如何减小与“大牛”的差距
- 关于手机连接不上ddms和eclipse的问题
- Android 混淆代码的原理与实施
- linux 命名管道fifo实现进程间小数据通信
- 了解SVG网页矢量图
- Android设置全屏
- MyEclipse中删除对Struts、Hibernate、Spring的支持
- 让C/C++程序一次编译可以发布到多版本Linux之上
- 线程函数的设计以及线程同步要点(MsgWaitForMultipleObjects等)
- js中给移除指定数组元素
- jaxb例子
- SVG和VML有什么不同