当前位置: 技术问答>linux和unix
管道程序中write(STDOUT_FILENO,line,n)是什么意思呢?
来源: 互联网 发布时间:2016-04-25
本文导语: write(STDOUT_FILENO,line,n)是什么意思呢?是向屏幕输出吗?我进里面看有#define STDOUT_FILENO 1,那为什么要向STDOUT_FILENO里面写内容呢? | 原来是这样一个程序啊,大家都被忽悠了:) 1.write(STDOUT_FILENO,line,n)...
write(STDOUT_FILENO,line,n)是什么意思呢?是向屏幕输出吗?我进里面看有#define STDOUT_FILENO 1,那为什么要向STDOUT_FILENO里面写内容呢?
|
原来是这样一个程序啊,大家都被忽悠了:)
1.write(STDOUT_FILENO,line,n)是标准输出打印;当然如果标准输入是屏幕,就是向屏幕输出;
2.n=read(fd[0],line,MAXLINE);的返回值不一定就是MAXLINE!原理上,n可用是小于MAXLINE的任何值,因为当read()的时侯可能被信号或者其它原因打断,这是放回实际读到的字节数;可以通过判断errno,进一步将剩余数据读完!
good luck!