2011-05-28 66 views
1

我想了解stdinstdout ......这些都是我有
几个问题,这里是我使用的代码:我想知道发生了什么试图了解标准输入,标准输出

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

我把ECHO关闭stdin而不是stdout ....我的意思是,在这两种情况下,我遇到同样的结果....他们如何不同?

stty命令返回什么?
运行上述程序后,我做了stty,发现line = 0的-echo,如果我是对的,则关闭stdin,但程序将ECHO标志关闭为stdout ??
对不起,如果我的疑惑声小白:(

+4

也许我在这里毫无头绪,但我想这些是终端控制比stdin/stdout更多的问题。根据我的理解,后者只有简单的数据流。 – Joey 2011-05-28 10:47:07

回答

2

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

tcgetattr简单。获取有关与文件描述符关联的对象信息

当然,他们没有要与同一终端相关联。例如,如果你运行:

./a.out >file.out那么标准输入仍然会重视编辑到终端,但标准输出现在附加到一个文件。

相关问题