使用 O_NONBLOCK 模式会影响到对 FIFO 的 read 和 write 调用。
对一个空的、阻塞的 FIFO (即没有用 O_NONBLOCK 标志打开)的read 调用将等待,直到有数据可以读时才继续执行。于此相反,对一个空的、非阻塞的 FIFO 的 read 调用将立刻返回 0 字节。
对一个完全阻塞 FIFO 的 write 调用将等待,直到数据可以被写入时才...
分类:
其他好文 时间:
2015-01-01 17:25:33
阅读次数:
611
第一个程序是数据生产者程序。它在需要时创建管道,然后尽可能快地向管道中写入数据。为了方便起见,本程序没有初始化缓冲区。
生产者程序
/*数据生产者*/
#include
#include
#include
#include
#include
#include
#include
#include
#define FIFO_NAME "/tmp/my_fifo"
#defin...
分类:
系统相关 时间:
2015-01-01 17:24:25
阅读次数:
301
我用过bash shell,而且时间不短了。但我从来没学过shell,至少没有像C++这么认真去学。平时写些基本的脚本没问题,不懂也可以google、百度。可在2014最后一天,掉坑里了。 其实脚本也很简单,代码基本如下:#!/bin/bashdeclare -A FILES #关联数组...
分类:
系统相关 时间:
2015-01-01 12:30:05
阅读次数:
184
1. 函数说明pipe(建立管道):1) 头文件 #include2) 定义函数: int pipe(int filedes[2]);3) 函数说明: pipe()会建立管道,并将文件描写叙述词由參数filedes数组返回。 filedes[0]为管道里的读取端 filedes[1]则为管道的写入端...
分类:
系统相关 时间:
2015-01-01 11:14:58
阅读次数:
228
简单说一下popen()函数
函数定义
#include
FILE * popen(const char *command , const char *type );
int pclose(FILE *stream);
函数说明
popen()函数通过创建一个管道,调用fork()产生一个子进程,执行一个shell以运行命令来开启一个进程。这个管道必须由pclose()函数...
分类:
系统相关 时间:
2015-01-01 00:19:11
阅读次数:
374
标准I/O函数库提供了popen函数,它启动另外一个进程去执行一个shell命令行。这里我们称调用popen的进程为父进程,由popen启动的进程称为子进程。popen函数还创建一个管道用于父子进程间通信。父进程要么从管道读信息,要么向管道写信息,至于是读还是写取决于父进程调用popen时传递的参数...
分类:
其他好文 时间:
2014-12-31 16:06:27
阅读次数:
225
开篇:ASP.Net是一项动态网页开发技术,在历史发展的长河中WebForm曾一时成为了ASP.Net的代名词,而ASP.Net MVC的出现让这项技术更加唤发朝气。但是,不管是ASP.NetWebForm还是ASP.Net MVC在请求处理机制上大部分都是相同的,只是在请求处理管道上的处理事件做了...
分类:
Web程序 时间:
2014-12-30 21:55:44
阅读次数:
282
一个管道实际上就是一块共享内存,它有两端,分别用于两个进程的读写。这里介绍下如何在Windows上实现线程之间的管道通信。 参考原文:Multithreaded Pipe Communication on Windows C#多线程管道通信 创建一个管...
分类:
编程语言 时间:
2014-12-30 12:06:20
阅读次数:
174
Android系统是基于Linux内核来开发的,在分析它在运行时库层的源代码时,我们会经常碰到诸如管道(pipe)、套接字(socket)和虚拟文件系统(VFS)等知识。 此外,Android系统还在Linux内核中增加了一些专用的驱动程序,例如用于日志系统的Logger驱动程序、用于进程间通...
分类:
移动开发 时间:
2014-12-28 23:38:24
阅读次数:
267