试图理解标准输入、标准输出
我正在尝试理解 stdin
、stdout
...这些是我的几个问题
这是我正在使用的代码:
int main()
{
struct termios new;
tcgetattr(1,&new);
new.c_lflag &= ~ECHO;
tcsetattr(1,TCSAFLUSH,&new);
return 0;
}
我想知道如果我在 stdin
而不是 stdout
上关闭 ECHO
会发生什么......我的意思是,在这两种情况下我都经历了相同的结果......它们有什么不同?
stty
命令返回什么?
运行上面的程序后,我做了stty
并发现-echo for line=0,如果我是对的,它在stdin
上关闭了ECHO
,但程序会关闭 stdout
的 ECHO
标志??
抱歉,如果我的怀疑听起来很菜鸟:(
I am trying to understand stdin
, stdout
...and these are few questions i have
here's the code i am using:
int main()
{
struct termios new;
tcgetattr(1,&new);
new.c_lflag &= ~ECHO;
tcsetattr(1,TCSAFLUSH,&new);
return 0;
}
I want to know what happens if i turn ECHO
off on stdin
rather than stdout
....i mean, in both the cases i experience same result....how do they differ??
And what does stty
command returns??
After running the above program, i did stty
and found -echo for line=0, if i am right, it is ECHO
off on stdin
, but the program turns the ECHO
flag off for stdout
??
Sorry, if my doubts sound noob :(
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是终端控制。如果您的标准输入和标准输出都连接到同一终端,那么您仍然管理相同的对象配置。
tcgetattr
只是获取与文件描述符关联的对象的信息。当然,它们不必与同一终端关联。例如,如果您运行:
./a.out >file.out
那么 stdin 仍将附加到终端,但 stdout 现在附加到文件。This is terminal control. And if both your stdin and stdout are connected to the same terminal, then you are still managing the same objects configuration.
tcgetattr
simply gets information about the object associated with the filedescriptor.Of course they don't have to be associated with the same terminal. For example if you run:
./a.out >file.out
then stdin will still be attached to the terminal, but stdout is now attached to a file.