当前位置: 技术问答>linux和unix
dup2(fd[0],STDIN_FILENO)!=STDIN_FILENO疑问
来源: 互联网 发布时间:2016-12-23
本文导语: 这是《unix环境高级编程》15章进程间通信15.2管道一节中例题程序清单15-2中的一句^ ^ 按书上的说法,这句是“使标准输入成为管道的读端”。 不懂,dup2是复制句柄,下面我会贴出源码,大家上下文看看...
这是《unix环境高级编程》15章进程间通信15.2管道一节中例题程序清单15-2中的一句^ ^
按书上的说法,这句是“使标准输入成为管道的读端”。
不懂,dup2是复制句柄,下面我会贴出源码,大家上下文看看,能不能帮我解释解释。
此外,我记得freopen是可以改变流的,比如freopen(fd[0],"r",stdin),但流是标准IO才有的,文件IO里面好像不能用
******************************************************************************
#include "apue.h"
#include
#define DEF_PAGER "/bin/more" /* default pager program */
int
main(int argc, char *argv[])
{
int n;
int fd[2];
pid_t pid;
char *pager, *argv0;
char line[MAXLINE];
FILE *fp;
if (argc != 2)
err_quit("usage: a.out ");
if ((fp = fopen(argv[1], "r")) == NULL)
err_sys("can't open %s", argv[1]);
if (pipe(fd)
按书上的说法,这句是“使标准输入成为管道的读端”。
不懂,dup2是复制句柄,下面我会贴出源码,大家上下文看看,能不能帮我解释解释。
此外,我记得freopen是可以改变流的,比如freopen(fd[0],"r",stdin),但流是标准IO才有的,文件IO里面好像不能用
******************************************************************************
#include "apue.h"
#include
#define DEF_PAGER "/bin/more" /* default pager program */
int
main(int argc, char *argv[])
{
int n;
int fd[2];
pid_t pid;
char *pager, *argv0;
char line[MAXLINE];
FILE *fp;
if (argc != 2)
err_quit("usage: a.out ");
if ((fp = fopen(argv[1], "r")) == NULL)
err_sys("can't open %s", argv[1]);
if (pipe(fd)
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!