两个很有用的进程间通信函数popen,pclose

今天起的比较晚,然后来了也不想复习,还是看书学习--写代码--写博客有意思,不敢说有多精通,至少每天都在学习新知识,不求立刻完全消化,但求每天有进步。

现在就看看这两个函数,其实都是创建一个管道到子进程,但是使用这两个函数要比昨天使用pipe() 函数简单的多。

#include <stdio.h>
       FILE *popen(const char *command, const char *type);
       int pclose(FILE *stream);

函数原型参上。popen 函数有两个参数,第一个是执行的可执行程序,这个函数首先会调用fork( )然后调用exec( )函数执行这个可执行文件。然后还有一个参数,有两个选项(r & w). r :将返回的文件指针连接到可执行程序的标准输出,w:将返回的文件指针连接到可执行文件的标准输入。

#include<stdio.h>
#include<apue.h>
#include<sys/wait.h>
#include<unistd.h>
#define PAGER "${PAGER:-more}"
#define MAXLINE 255
int main(int argc,char **argv)
{char line[MAXLINE];FILE *fpin,*fpout;if(argc != 2){printf("plesase enter the Pathname\n");}if((fpin = fopen(argv[1],"r")) == NULL){printf("can not open \n");}if((fpout = popen(PAGER,"w")) == NULL){printf("popen error\n");}while(fgets(line,MAXLINE,fpin) != NULL){if(fputs(line,fpout) == EOF){printf("fputs error\n");}}if(ferror(fpin)){printf("fgets error\n");}if(pclose(fpout) == -1){printf("pclose error\n");}exit(0);
}

首先我们应当在本地创建一个文本文件随便写入一些东西,然后传给这个程序,这个程序调用本身的more 分页程序,将文本里的东西分页显示在终端上。

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/zmrlinux/p/4921404.html

两个很有用的进程间通信函数popen,pclose相关推荐

  1. 【转载】100多个很有用的JavaScript函数以及基础写法大集合

    1.document.write("");为 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4 ...

  2. 100多个很有用的JavaScript函数以及基础写法大集合

    1.document.write("");为 输出语句   2.JS中的注释为//   3.传统的HTML文档顺序是:document->html->(head,bod ...

  3. Sql Server 三个很有用的函数

    好久没有写有关SqlServer 数据库方面技术的文章了,正好今天遇到了一个问题,我就把这个当做一个练习记录下来.今天遇到一个麻烦事,详情如下:公司买了一个系统,在这个系统里面有一个"充值卡 ...

  4. 邹检验 matlab,科学网—Matlab中一个很有用的函数:regionprops - 邹兴文的博文

    Matlab中一个很有用的函数:regionprops 已有 6712 次阅读 2010-1-30 22:52 |个人分类:开发经验|系统分类:科研笔记| 有用的函数, regionprops Mat ...

  5. coalesce---一个很有用的函数

    在mysql中,其实有不少方法和函数是很有用的,一个叫coalesce的,作用是将返回传入的参数中第一个非null的值,比如 SELECT COALESCE(NULL, NULL, 1);  -- R ...

  6. 8个很有用的PHP安全函数,你知道几个?

    原文:Useful functions to provide secure PHP application 译文:有用的PHP安全函数 译者:dwqs 安全是编程非常重要的一个方面.在任何一种编程语言 ...

  7. matlab centroid,Matlab中一个很有用的函数:regionprops

    在matlab图像处理中太有用了,regionprops用来度量图像区域属性的函数. 函数:regionprops.顾名思义:它的用途是get the properties of region,即用来 ...

  8. Android 开发中一些很有用但你不知道的方法

    English_Version:https://github.com/jiang111/awesome-android-tips/blob/master/README-en.md这里收集了大家常用的一 ...

  9. Unix / 类 Unix shell 中有哪些很酷很冷门很少用很有用的命令?(转)

    著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:孙立伟 链接:http://www.zhihu.com/question/20140085/answer/14107336 ...

最新文章

  1. 边界填充算法讲解_边界填充算法
  2. matlab路面,赛道道路路况分析问题 matlab高手进下
  3. ArcGIS Server发布WFS中文图层名称乱码问题解决方案
  4. Python人脸识别教程 - 基于Python的开源人脸识别库:离线识别率高达99.38%
  5. gitbook使用及book.json详细配置
  6. linux -- 个人笔记
  7. javascript特效:会随着鼠标而动的眼睛
  8. PHP Cookbook读书笔记 – 第13章Web自动化
  9. tomcat修改端口号 / 同时运行多个tomcat
  10. C++ QT中国象棋双人单机对战代码总结
  11. 使用Mediapipe制作抖音特效
  12. SaaS公司到底算不算互联网公司?
  13. 【c#】文本转语音,语音转文本
  14. 如何在迪士尼+上启用和自定义字幕
  15. BZOJ 4031 HEOI2015 小Z的房间 Matrix-Tree定理
  16. 很合理,但是有病的奇怪网站合集
  17. excel 关联数据
  18. GRU时间序列数据分类预测
  19. ### The error may involve defaultParameterMap ### The error occurred while setting parameters
  20. 如何用计算机破解ipad,ipad解id锁方法介绍【图文】】

热门文章

  1. python chrome headless_[技巧] chrome headless 爬虫抓取websoket 数据
  2. java矩阵加法_在java中的数组加法?
  3. jdbc获取一行字符串_JDBC基础
  4. 数据结构-链表之单链表
  5. [深度学习] 分布式模式介绍(一)
  6. 【cudnn】cudnn 安装
  7. 【语义分割】ICCV21_Self-Regulation for Semantic Segmentation
  8. 如何在Python中建立回归模型
  9. Linux进程调度策略分析
  10. 基于智能计算的降维技术研究与应用