在c中重新打开stdin,stdout或stderr

时间:2014-10-08 09:59:07

标签: c linux stdout stdin stderr

我已经看到了Question

它说我们可以复制stdin和stdout的文件描述符,以便我们在程序的后期重新打开它们。

我的问题:

  • 我们可以打开文件" / dev / tty"在O_WRONLY模式下重新打开stdout?
  • 这是正确的做法吗?
  • 有没有类似的方法可以重新打开stdin和stderr ??

1 个答案:

答案 0 :(得分:1)

不,你提出的方法不是正确的方法。 /dev/tty"设备"是您的终端设备,并不一定能保证标准输出的去向。

例如,如果您将程序运行为:

yourprog >output.txt

然后打开/dev/tty为您提供起始标准输出(即output.txt文件)。