文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Poen pclose创建和关闭无名管道

Poen pclose创建和关闭无名管道

时间:2010-11-18  来源:unix_disciple

poen pclose创建和关闭无名管道

Linux下标准I/O函数库提供了poen函数,它创建了一个管道并启动另外一个进程,该进程或者从管道读出标准输入,或者从管道写入标准输出。

#include <stdio.h>

FILE *poen(const char *command,const char *type); 

//返回:成功时为文件指针,出错时为NULL

 

int pclose(FILE *stream);

//返回:成功时为shell的终止状态,出错时为-1

 

其中command是一个shell命令行,它是由shell程序处理的,poen在调用进程和所指定的命令之间创建一个管道,由open返回的值是一个标准I/O FILE指针,该指针或者用于输入,或者用于输出,具体取决于字符串type,如果type为r,那么调用进程读取command的标准输出。如果type为w,那么调用进程写到command的标准输入。pclose函数关闭由poen创建的标准I/O流stream,等待其中的命令终止,然后返回shell的终止状态。

 

Example:

popen.c

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

 

int main()

{

        FILE *fp_pipe;

        FILE *fp;

        char buff[1024];

 

        fp_pipe = popen("ls -l","r");

        fp = fopen("temp.txt","w+");

 

        memset(buff,0,sizeof(buff));

        fread(buff,sizeof(char),sizeof(buff),fp_pipe);

        fwrite(buff,sizeof(char),sizeof(buff),fp);

 

        pclose(fp_pipe);

        fclose(fp);

        exit(0);

}

 

 

mark@ubuntu:~/popen$ ls

Makefile  popen  popen.c

mark@ubuntu:~/popen$ ./popen

mark@ubuntu:~/popen$ ls

Makefile  popen  popen.c  temp.txt

mark@ubuntu:~/popen$ cat temp.txt

总用量 16

-rw------- 1 mark mark   65 2010-11-18 01:09 Makefile

-rwxr-xr-x 1 mark mark 7402 2010-11-18 02:06 popen

-rw------- 1 mark mark  350 2010-11-18 01:13 popen.c

-rw-r--r-- 1 mark mark    0 2010-11-18 02:06 temp.txt

mark@ubuntu:~/popen$

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载