首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

初学者又来了。

2012-09-17 
菜鸟又来了。。C/C++ codeint main(){char buf[] hello world\nclose(1)if(write(STDIN_FILENO,buf,12

菜鸟又来了。。

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

热点排行