【问题标题】:read stdout of ssh command execution读取 ssh 命令执行的标准输出
【发布时间】:2015-04-03 09:09:45
【问题描述】:

我使用以下代码通过 ssh 在另一台服务器上运行进程。

ssh HOST "/Desktop/hello"

我的 ./hello 程序使用 printf 打印内容。

然后我使用 popen 和 fgets 来读取这些日志,但我什么也没得到。

所以我尝试在我的终端上运行该 ssh 命令,结果与我没有得到任何日志记录的结​​果相同。

我可以做些什么来查看日志?

【问题讨论】:

  • 考虑改用 SSH 库。
  • 你的问题的重点似乎是这个“你好”程序不起作用。但是你没有告诉我们任何关于它的事情。它在哪里?运行时是否出现任何错误?能发下源代码吗?

标签: c ssh


【解决方案1】:

你可以这样运行命令:

ssh HOST "/Desktop/hello" >> file.log

然后用另一个程序打开这个 'file.log' 以查看来自 'hello' 的日志

你可以编写简单的代码来打开文件描述符并读取文件上下文,或者只是

tail -f file.log

编辑:

尝试使用 stderr 而不是 stdout,看看它是否像那样工作:

fprintf(stderr, "这是一个 printf %d\n", 345);

stderr 永远不需要刷新,可能对你有用

【讨论】:

  • 尝试使用 stderr 而不是 stdout,看看它是否像这样工作: fprintf(stderr, "This is a printf call %d\n", 1234); stderr 永远不需要刷新,可能对您有用
最近更新 更多