读书人

初学者又来了。

发布时间: 2012-09-17 12:06:51 作者: rapoo

菜鸟又来了。。

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也关联终端,是用来读取终端输入的,如果你向它写,显示在屏幕上又有何不可?就好像是你敲进去的一样,是一样的道理。 都说了这个行为是特殊的,你非要问为什么不如有空多读几行书学点关键的。

读书人网 >UNIXLINUX

热点推荐