两个很有用的进程间通信函数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 分页程序,将文本里的东西分页显示在终端上。

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

时间: 2024-11-01 01:48:37

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

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

1.document.write("");为 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document) 5.得到表单中元素的名称和值:document.getElementById("表单中元素的ID号").name(或value) 6.一个小写转

PHP很有用的一个函数ignore_user_abort ()

PHP很有用的一个函数ignore_user_abort () 2013-01-16 14:21:31|  分类: PHP |  标签:php  函数  |举报|字号 订阅 ignore_user_abort 设置与客户机断开是否会终止脚本的执行. 本函数返回 user-abort 设置的之前的值(一个布尔值). int ignore_user_abort ([ string $value ] ) 参数 描述 setting 可选.如果设置为 true,则忽略与用户的断开,如果设置为 false

有用-很少用的函数

1.ingore_user_abort(); 这个函数用来拒绝浏览器端用户终止执行脚本的请求. 正常情况下客服端的退出会导致服务器端脚本停止运行. <?php ingore_user_abort(); ?> 2.这个函数对有些业务逻辑还是很有用的 需要一段时间才能完成的,如果用户关闭浏览器&断电...  后台的PHP程序还会执行完吗? ..试试去. http://www.topthink.com/topic/3993.html

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

原文:Useful functions to provide secure PHP application 译文:有用的PHP安全函数 译者:dwqs 安 全是编程非常重要的一个方面.在任何一种编程语言中,都提供了许多的函数或者模块来确保程序的安全性.在现代网站应用中,经常要获取来自世界各地用户的输 入,但是,我们都知道“永远不能相信那些用户输入的数据”.所以在各种的Web开发语言中,都会提供保证用户输入数据安全的函数.今天,我们就来看看,在 著名的开源语言PHP中有哪些有用的安全函数. 在PH

几个很有用的PHP安全函数

1. mysql_real_escape_string() 这个函数在PHP中防止SQL注入攻击时非常有用.这个函数会对一些例如单引号.双引号.反斜杠等特殊字符添加一个反斜杠以确保在查询这些数据之前,用户提供的输入是干净的.但要注意,你是在连接数据库的前提下使用这个函数. 但是现在已经不推荐使用mysql_real_escape_string()了,所有新的应用应该使用像PDO一样的函数库执行数据库操作,也就是说,我们可以使用现成的语句防止SQL注入攻击. 2. addslashes() 这 个

两篇很牛的vim使用技巧

读本文之前请注意:1. 本文的目标是提供一些vim的使用技巧,利用这些技巧可以提高vim的操作效率.部分技巧在vi上也可以使用,但是现在基本上都是用vim了.2. 本文是整理和总结使用技巧,而非讲解vim入门,因此不会涉及最基本的使用,例如如何上移或下移光标,对此类操作请参阅任何一本vim或者vi教程.3. 本文阅读对象是了解了vim的基本操作,而希望高效地利用vim进行工作的人.熟练使用vim的人自然不必细读,如果能留下您的宝贵意见,本人将感激不尽.4. 本文由本人搜集整理,转载请注明出处 本

(转载)两篇很牛的vim使用技巧

读本文之前请注意: 1. 本文的目标是提供一些vim的使用技巧,利用这些技巧可以提高vim的操作效率.部分技巧在vi上也可以使用,但是现在基本上都是用vim了. 2. 本文是整理和总结使用技巧,而非讲解vim入门,因此不会涉及最基本的使用,例如如何上移或下移光标,对此类操作请参阅任何一本vim或者vi教程. 3. 本文阅读对象是了解了vim的基本操作,而希望高效地利用vim进行工作的人.熟练使用vim的人自然不必细读,如果能留下您的宝贵意见,本人将感激不尽. 4. 本文由本人搜集整理,转载请注明

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

著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:孙立伟 链接:http://www.zhihu.com/question/20140085/answer/14107336 来源:知乎 这个问题quora上有人提过 What are some lesser known but useful Unix commands? ,已经有不少答案了,我个人已经从这些答案中学到不少,这里我只是照搬过来,然后加上自己的解释. lsof: 列出所有打开的文件.举例:'lsof -p

jQuery中10个非常有用的遍历函数

使用jQuery,可以 很容易的选择HTML元素.但有些时候,在HTML结构较为复杂时,提炼我们选择的元素就是一件麻烦的事情.在这篇教程中,我们将探讨十种方 法去精炼和扩展我们将要操作的集合. HTML 首先,让我们看看下图所示的简单的页面,通过这个教程我们将选择这些元素. div.container是包裹元素: div.photo.div.title.div.rating是div.container的直接子级: 每个div.star是div.rating的子级: 当div.satr的class