使用popen函数实现分页显示
来源:互联网 发布:乐视2手机网络时间不准 编辑:程序博客网 时间:2024/06/06 04:00
#include <fcntl.h>#include <stdio.h>#include "apue.h"#include <errno.h>#include <sys/wait.h>#include <sys/types.h>#include <unistd.h>#include <stropts.h>#include <sys/mman.h>#define PAGER "${PAGER:-more}"int main(int argc , char *argv[]){int n;char line[MAXLINE];FILE *fpin,*fpout;if(argc!=2)err_sys("input err");if((fpin=fopen(argv[1],"r"))<0)err_sys("fopen err");if((fpout=popen(PAGER,"w"))<0)err_sys("popen err");while(fgets(line,MAXLINE,fpin)!=NULL){n=strlen(line);if(fputs(line,fpout)==EOF)err_sys("fputs erro");}if(ferror(fpin))err_sys("fgets errr");if(pclose(fpout)<0)err_sys("pclose err");exit(0);}
对于popen(char *cmd,int char type)而言,其先定义一个管道pfd[],然后创建子进程,在子进程里面,当type为"r"的时候,使用pfd[0]为STDOUT_FILENO,返回fpout=pfd[1],这样在父进程里面向fpout里面写数据,则在子进程里面,相当于给起标准输入写东西,然后子进程读取这些输入,并调用bash程序执行第一个参数cmd
以上程序实现了分页显示。
- 使用popen函数实现分页显示
- 自己实现popen函数
- 自己实现popen函数
- 自己实现popen函数
- 自己实现popen函数
- popen函数的实现
- Linux popen()函数使用
- linux的popen函数使用
- 使用Repeater实现分页显示
- 利用popen实现的system函数
- popen 函数
- popen函数
- popen函数
- popen()函数
- popen函数
- 函数popen()
- Popen函数
- popen函数
- IIS 支持 flv文件播放 (浏览器中可打开一flv文件)
- STL--string
- [转]Windows Shell 编程 第九章
- Struts2 过滤器与拦截器
- 单击按钮自增长练习
- 使用popen函数实现分页显示
- 哪些年遇到过的Andriod问题(15)注册广播服务,如果你看过MARS老师的视频,还是不算了吧,这是纯COPY的
- map2bean AND bean2map
- [转]Windows Shell 编程 第十章
- Api Guide之App resources学习笔记
- 十三个强大的Linux性能监测工具 uptime dmesg top iostat vmstat sar free ulimit mpstat
- 紫薇花开的季节(二)
- 如何使你的应用程序调试进.NET Framework 4.5源代码内部(适用B/S,C/S)
- 百度笔试题目