试图了解stdin,stdout

时间:2011-05-28 10:43:46

标签: c stdout echo stdin

我正在努力理解stdinstdout ......这些是我的几个问题 这是我正在使用的代码:

int main()  
{  
    struct termios new;  
    tcgetattr(1,&new);  
    new.c_lflag &= ~ECHO;  
    tcsetattr(1,TCSAFLUSH,&new);  
    return 0;  
}  

我想知道如果我在ECHO而不是stdin关闭stdout会发生什么....我的意思是,在这两种情况下我都会遇到相同的结果....它们有什么不同?

stty命令返回什么? 运行上面的程序后,我做了stty并找到-echo为line = 0,如果我是对的,ECHO关闭stdin,但程序转为{{1}为ECHO标记为关闭? 对不起,如果我的怀疑声音noob :(

1 个答案:

答案 0 :(得分:2)

这是终端控制。如果你的stdin和stdout都连接到同一个终端,那么你仍然在管理相同的对象配置。

tcgetattr只是获取有关与filedescriptor关联的对象的信息。

当然,他们不必与同一个终端相关联。例如,如果您运行:

./a.out >file.out然后stdin仍将附加到终端,但stdout现在附加到文件。