- #include "apue.h"
- #include <sys/wait.h>
- #define PAGER "${PAGER:-more}" /* environment or default */
- int main(int argc,char * argv[])
- {
- char line[MAXLINE];
- FILE * fpin, * fpout;
- if (argc != 2)
- err_quit(" uasge: a.out );
- if ((fpin = fopen(argv[1],"r")) == NULL )
- err_sys("can't open file ");
- if ((fpout = popen(PAGER,"w")) == NULL )
- err_sys("popen error");
- /*
- * copy argv[1] to pager */
- while( fgets(line,MAXLINE,fpin) != NULL )
- if (fputs(line,fpout) == EOF )
- err_sys("fputs error");
- if (ferror(fpin))
- err_sys("fputs error");
- if (pclose(fpout) == -1 )
- err_sys("fput error");
- exit(0);
- }
ubuntu@ubuntu-virtual-machine:~/Desktop/apue$ gcc -Wall -o c15-3 c15-3.c error.c
./c15-3 error.c
#include "apue.h"
#include
/* for definition of errno */
#include /* iso c variable arguement */
static void err_doit(int ,int,co..................注意 函数的使用方式
popen(cmdstring,"mode");
打开管道,执行命令,根据mode的方式,
并以文件指针的方式返回:
FILE * fp
r: 说明管道以可读的方式返回文件指针
w: 说明管道已可写的方式返回文件指针
阅读(958) | 评论(0) | 转发(0) |