摘要: UNIX系统过滤程序从标准输入读取数据,对其进行适当处理后写到标准输出。几个过滤程序通常在shell管道命令行中线性地连接。当一个程序产生某个过滤程序的输入,同时又读取该过滤程序的输出时,则该过滤程序就成为协同进程(coprocess)。 Korn shell提供了协同进程。Bourne shell、Bourne-again shell和C shell并没有提供按协同进程方式将进程连接起来的方法... 阅读全文
posted @ 2014-02-22 22:21 ITtecman 阅读(2871) 评论(1) 推荐(0) 编辑
摘要: 常见的操作是创建一个管道连接到另一个进程,然后读其输出或向其输入端发送数据,为此,标准I/O库提供了两个函数popen和pclose。这两个函数实现的操作是:创建一个管道,调用fork产生一个子进程,关闭管道的不使用端,执行一个shell以运行命令,然后等待命令终止。#include FILE *popen(const char *cmdstring, const char *type);返回值:若成功则返回文件指针,若出错则返回NULLint pclose(FILE *fp);返回值:cmdstring的终止状态,若出错则返回-1函数popen先执行fork,然后调用exec以执行cmdst 阅读全文
posted @ 2014-02-22 19:53 ITtecman 阅读(8454) 评论(0) 推荐(0) 编辑