标准输入文件 - stdin
始终键盘,标准输出文件 - stdout
始终屏幕,以及标准错误文件 - stderr
总是屏幕?
为什么?
答案 0 :(得分:3)
默认情况下,是的。 但系统如此灵活和强大的原因是它可以被重定向(由用户或程序两者)
键入shell时
command > file
您实际上将command
的标准输出重定向到文件file
。
通过
command1 | command2
您将command1
的标准输出重定向到command2
的标准输出
以编程方式,file descriptor 0始终是stdin,1 stdout,2 stderr。
我建议学习dup
and dup2
以编程方式重定向它们。
实施例
int file = open("out.txt", O_APPEND | O_WRONLY);
int stdout_cpy = dup(1); // Clone stdout to a new descriptor
dup2(file, 1); // Make file the new fd 1, i.e. redirect stdout to out.txt