有名管道
2015-09-24 12:20
239 查看
创建
注:有名管道需要用open函数打开以后使用,如果以读方式打开,会阻塞到有写方打开管道,同样以写方式打开会阻塞到以读方式打开;在该程序中一定会先执行子进程,因为父进程读管道时,管道中没有数据,也会阻塞read到有write写入到管道中
举例
int mkfifo(const char *pathname, mode_t mode);
注:有名管道需要用open函数打开以后使用,如果以读方式打开,会阻塞到有写方打开管道,同样以写方式打开会阻塞到以读方式打开;在该程序中一定会先执行子进程,因为父进程读管道时,管道中没有数据,也会阻塞read到有write写入到管道中
举例
int wfd; int rfd; char buf[100] = {0}; mkfifo("./fifo", 0777); //创建管道 if(fork() == 0) { wfd = open("./fifo", O_WRONLY); dup2(1, wfd); //标准输出到管道输入 while(1) { system("ls"); sleep(1); } } rfd = open("./fifo", O_RDONLY); while(1) { read(rfd, buf, 100); puts(buf); }
相关文章推荐
- 硬盘大于2T以上,用parted创建分区安装centos6.5
- 统计英文单词词频
- 日经春秋 20150924
- MSDN ATL教程链接,好好学习,天天向上
- C#Winform定时执行一段程序
- 根据当期日期计算,农历日期的类
- leetcode 95-96:Unique Binary Search Trees
- sublime配置记录
- 关于中部城市人才外流问题的思考
- 在Lufylegend中如何设置bitmap或者sprite的缩放和旋转中心
- 查找当前目录下包含特定字符串的特殊后缀名的文件
- 工作小结
- Ubuntu 14.04中编译kermit
- Qt中以固定格式写批量int型数据至文件之格式控制(数字对齐)
- Navicat for MySQL(mysql图形化管理工具)是什么?
- poj 1077 八数码
- <s:checkbox> fieldValue取值问题
- Android 检查APP是否被设置禁止显示通知
- 天声人語 20150924
- Xcode7 出现"-fembed-bitcode"错误的解决办法