菜鸟又来了。。
C/C++ code
int main()
{
char buf[] = "hello world\n";
close(1);
if(write(STDIN_FILENO,buf,12) != 12)
{
printf("write error!\n");
exit(1);
}
return 0;
}
如代码所示,我关闭了标准输出,然后往标准输入写了一条信息,为什么运行时这条信息还是会打印出来,请大神们帮帮忙!!!
------解决方案--------------------
谁告诉你是在标准输出打印东西了,描述符1关联终端,所以写1就会显示在终端上。
描述符0也关联终端,是用来读取终端输入的,如果你向它写,显示在屏幕上又有何不可?就好像是你敲进去的一样,是一样的道理。 都说了这个行为是特殊的,你非要问为什么不如有空多读几行书学点关键的。