1.格式:cmd1|cmd2[....|cmdn]2.定义:将前一个命令的执行标准输出结果做为下一个命令的标准输入。3.管道使用中注意:a.在管道后面的命令,都不应该在接文件名,否则管道前的信息失效,只执行管道后面的。b.在管道中只有标准输出才能传递给下一个命令,标准的错误输出则直接输..
分类:
系统相关 时间:
2014-09-09 13:33:59
阅读次数:
188
subprocess--子进程管理器?
一、subprocess 模块简介
subprocess最早是在2.4版本中引入的。
subprocess模块用来生成子进程,并可以通过管道连接它们的输入/输出/错误,以及获得它们的返回值。
它用来代替多个旧模块和函数:
os.system
os.spawn*
os.popen*
popen2.*
commands.*
关于这个模...
分类:
编程语言 时间:
2014-09-09 12:37:38
阅读次数:
284
ctrl + c --> 2)SIGINTctrl + \ --> 3)SIGQUIT13)SIGPIPE 当管道读端关闭,再往管道写东西,会发出SIGPIPE信号17)SIGCHLD 子进程退出会向父进程发出SIGCHLD信号,系统默认处理是忽略掉该信号#include#include #incl...
分类:
其他好文 时间:
2014-09-09 12:28:48
阅读次数:
185
刚开始代码的实现如下:voidCreateFIFO(){if((mkfifo(FIFOPATH,O_CREAT|O_EXCL|O_RDWR)<0)&&(errno!=EEXIST)){printf(strerror(errno));}}intOpenFIFO(){fd=open(FIFOPATH,O_RDWR|O_NONBLOCK);returnfd;}觉得非常的不优雅,毕竟需要调用两个函数,而且写函数又有一..
分类:
其他好文 时间:
2014-09-08 10:59:37
阅读次数:
499
select函数对数据结构fd_set进行操作,fd_set是一个bitmap,该集合由打开的文件描述符构成。对于管道而言,select是通过检查管道是否阻塞,来进行监听的。只要所监听的管道非阻塞,select就能立马获知,并将其在fd_set中的相应为置1。管道非阻塞只有两种情况,一种是客户端向管...
分类:
其他好文 时间:
2014-09-06 23:41:24
阅读次数:
263
FILE * popen ( const char * command , const char * type );第一个参数是命令,不是文件名popen() 函数通过创建一个管道,调用 fork 产生一个子进程,执行一个 shell 以运行命令来开启一个进程。这个进程必须由 pclose() 函数...
分类:
其他好文 时间:
2014-09-06 20:01:43
阅读次数:
256
//第一个程序先发后收#include #include #include #include #include #include int main(int argc, char* argv[])//EXE send_fifo recv_fifo{ /* A创建管道1,我们假定其先发消息,再收消...
分类:
其他好文 时间:
2014-09-05 19:55:01
阅读次数:
402
xargs 又称管道命令,构造参数等。是给命令传递参数的一个过滤器,也是组合多个命令的一个工具 它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理 。简单的说 就是把 其他命令的给它的数据 传递给它后面的命令作为参数主要参数-i 用 {} 代替 传递的数据-I string 用strin...
分类:
其他好文 时间:
2014-09-05 19:45:21
阅读次数:
184
由于匿名管道使用的是文件描述符,所以我们只能用read和write对其进行读写。因为标准读写函数都是基于文件指针的。当read成功时,返回值为读到的字符数。当遇见文件结尾时,返回0(也就是什么都读不出来了)。出错,返回-1。—> 参考 man 2 read当write成功时,返回值为写入的字符数。返...
分类:
其他好文 时间:
2014-09-05 18:04:41
阅读次数:
221
Producer生产者顾名思义就是生产数据的线程,Consumer消费者就是使用数据的线程。可以有多个生产者,也可以有多个消费者,当生产者和消费者都是一个的时候,又叫做管道Pipe Pattern。下面简单写了个例子,一个线程加1,一个线程减1,一个生产者、一个消费者,生产者用来加1,消费者用来减1...
分类:
编程语言 时间:
2014-09-05 16:03:01
阅读次数:
233