试图理解标准输入、标准输出

发布于 2024-11-10 02:33:10 字数 613 浏览 2 评论 0原文

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

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 ,但程序会关闭 stdoutECHO 标志??
抱歉,如果我的怀疑听起来很菜鸟:(

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烂柯人 2024-11-17 02:33:10

这是终端控制。如果您的标准输入和标准输出都连接到同一终端,那么您仍然管理相同的对象配置。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文