/dev/tty和stdin/stdout/stderr之间有什么关系?

5

我知道它们有不同的文件描述符,stdxx可以被重定向。

int tty_fd = open("/dev/tty", O_RDWR);

那么下面的代码有什么不同(stdxx未重定向):

n = read(tty_fd, buf, sizeof(buf));
n = read(STDIN_FILENO, buf, sizeof(buf));

n = write(tty_fd, buf, sizeof(buf));
n = write(STDOUT_FILENO, buf, sizeof(buf));

如果没有重定向,就没有区别。但是你的程序如何知道没有重定向? - DYZ
1个回答

1

除非没有重定向,否则“/dev/tty”将用于显示标准输出或标准错误。您可以选择性地将stdout/stderr输出到不同的文件描述符而不是/dev/tty。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接