Linux 管道的I/O
来源:互联网 发布:大米营销软件骗局 编辑:程序博客网 时间:2024/05/21 11:01
管道使用完毕后应该调用close关闭,一个管道包含两个描述符,所以调用两次。多进程环境下注意文件描述符的引用次数,到0才算停止。
管道编程的一半步骤是先创建一个管道,然后在创建一个进程,父子进程通过管道进行数据交换,为了方便起见Linux的标准I/O库提供了两个专用的I/O函数,popen和pclose
popen首先创建一个管道,然后调用fork创建一个子进程,在子进程通过exec系列的函数加载要执行的程序-------第一个参数。popen成功后返回一个FILE数据结构指针,结合第二
参数可以确定含义。
#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<wait.h>#include<errno.h>#include<signal.h>#include <setjmp.h>#include<string.h>#include<sys/types.h>#include<fcntl.h>#include<sys/stat.h>int main( void ){ FILE *stream;//创建FILE指针变量 char buf[1024];//文件缓冲区 memset( buf, '\0', sizeof(buf) );//清0 stream = popen( "wc -l", "w" );//子进程执行wc -l命令,输入来自stream //在这里的就是统计输入了多少行数据,要求从键盘输入 for(;;) { memset(buf,0x00,sizeof(buf));//清空缓冲区 scanf("%s",buf);//键盘接受数据 if(strcmp(buf,"q") == 0)//是否为q { break; } fprintf(stream,"%s\n",buf); } pclose( stream );//关闭指针。完事后会输出wc命令统计的行数信息的.. return 0;}
0 0
- Linux 管道的I/O
- 使用简单的管道I/O
- 连接标准I/O的管道模型
- Linux shell编程 12 ---- 管道+I/O重定向
- linux 命令行 I/O 重定向和管道
- linux i/o重定向与管道编程
- linux基础---管道和I/O重定向
- Hadoop I/O管道剖析
- I/O重定向、管道
- 标准I/O和管道
- 管道和FIFO的非阻塞I/O
- Linux 下的I/o
- linux的I/O多路复用
- Linux的I/O机制
- Linux 下的I/O
- Linux下的I/O
- linux下的I\O
- Linux下的I/O
- 正则表达式之排除型字符组
- 开源ext2read代码走读之-在windows下如何判断有几个硬盘设备?
- 入门者必备——fpga芯片速度等级认识
- Android开发之使用URL访问网络资源
- zoj3627 Treasure Hunt II 贪心+模拟
- Linux 管道的I/O
- observer debugger 启动不了; erlang R17
- ios应用内切换设置语言,不跟系统变化
- 纯递归排序(不用循环)
- C语言笔记1--类型、运算符与表达式
- Ubuntu12.04下的超级终端:C-kermit 安装及使用方法
- ubuntu安装Memcache
- 键盘各键对应的编码值(key code)
- BZOJ1053