Linux学习笔记-标准库中的管道操作
目录 理论例子理论stdio.h里面有标志库管道操作FILE *popen(const char* cmdstring, const char *type);返回值:成功返回文件指针,出错返回NULL; int pclose(FILE *fp);返回值:cmdstring的终止状态,出错返回-1 注意:使用pepen()创建管道必须使用pclose()关闭!...
·
目录
理论
stdio.h里面有标志库管道操作
FILE *popen(const char* cmdstring, const char *type);返回值:成功返回文件指针,出错返回NULL;
int pclose(FILE *fp);
返回值:cmdstring的终止状态,出错返回-1
注意:使用pepen()创建管道必须使用pclose()关闭!
popen内部原理:
例子
源码如下:
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
int main(void){
FILE *fp;
//命令执行的结果放置在fp指向的结构体缓存中
fp = popen("cat /etc/passwd", "r");
char buf[512];
memset(buf, 0, sizeof(buf));
while(fgets(buf, sizeof(buf), fp) != NULL){
printf("%s", buf);
}
pclose(fp);
printf("-------------------------------------\n");
//wc命令统计数据
fp = popen("wc -l", "w");
//向fp指向的结构体缓存中写入数据
fprintf(fp, "1\n2\n3\n");
pclose(fp);
exit(0);
}
运行截图如下:
-l为统计多少行
更多推荐
已为社区贡献22条内容
所有评论(0)