STDERR在c ++程序中

时间:2011-02-28 09:21:21

标签: c++ ssh

我有一个csh程序,ssh进入服务器并运行一些命令。如果ssh失败,则错误将打印在屏幕上,程序不知道该错误..并返回一个空白的输出列表。我怎么知道ssh失败了?有没有办法将STDERR重定向到FD以外的其他东西?

1 个答案:

答案 0 :(得分:0)

我不知道你实际执行ssh的方式。

如果您system(),我建议您使用popen()。它将允许您检索程序的输出。您将能够从文件描述符中读取它,而不是显示它。然后,您可以向您的命令附加重定向,以便将stderr重定向到stdout,并在fd中检索。

如果你确实需要将stdout和stderr分开,那么你需要实现一个高级的popen(),它也会自己重定向stderr。您可以使用dup2()fork()来完成此操作。