【发布时间】:2017-09-15 23:06:32
【问题描述】:
我在野外遇到过这样的代码,我想知道为什么会这样。 代码从 stderr (fd==2) 而不是 stdin (fd==0) 读取。奇怪的是这实际上有点作用。您可以在控制台读取输入,但不能读取管道输入。知道这里发生了什么吗?
#include <stdio.h>
#include <unistd.h>
int main(){
char buf[15];
int nchars=read(2,buf,15);
printf("%d '%s'\n",nchars,buf);
}
【问题讨论】:
-
你的标题说“从 stderr 而不是 stderr 读取”这没有意义\
标签: c linux stdin stderr unistd.h