我正在努力理解stdin
,stdout
......这些是我的几个问题
这是我正在使用的代码:
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 :(
答案 0 :(得分:2)
这是终端控制。如果你的stdin和stdout都连接到同一个终端,那么你仍然在管理相同的对象配置。
tcgetattr
只是获取有关与filedescriptor关联的对象的信息。
当然,他们不必与同一个终端相关联。例如,如果您运行:
./a.out >file.out
然后stdin仍将附加到终端,但stdout现在附加到文件。