c格式的标准输出/输入/错误文件



标准输入文件(stdin始终是键盘,标准输出文件stdout始终是屏幕,标准错误文件stderr始终是屏幕吗?为什么呢?

默认情况下,是的。但是系统如此灵活和强大的原因是它可以重定向(由用户或程序两者)

当您在外壳中键入时

command > file

您实际上将command的标准输出重定向到文件file

通过做

command1 | command2

您将command1的标准输出重定向到command2的 stdin

以编程方式,文件描述符 0 始终是标准输出、1 标准输出、2 标准输出。

我建议了解dupdup2,以便以编程方式重定向它们。

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

相关内容

  • 没有找到相关文章

最新更新