2013-06-19 137 views
0

在閱讀了相關的docstutorials並發現了similar問題後,我仍然無法繼續。如果這是一個常見問題,我可以提前給出提示。我做了搜索,但我並不確定我在找什麼...Libssh遠程命令不在服務器上執行

我正在Debian中試用C的Libssh。

rc = ssh_channel_request_exec(channel, "ls -l"); 
if (rc != SSH_OK) { 
    ssh_channel_close(channel); 
    ssh_channel_free(channel); 
    return rc; 
} 

這將返回SSH_OK以表明命令已成功發送。正如我從similar問題所理解的那樣,這是因爲返回偵聽命令的成功「發送」。退貨不會檢查它是否已成功執行。

我的問題是,我怎麼能:

  • 執行命令(通過上述功能目前不執行它只是發送命令)
  • 傾聽它的執行
  • 打印返回的輸出?

我知道ssh_channel_read()函數,但由於命令不會被執行,我通常會輸出

Read (256) buffered : 0 bytes. Window: 64000 
+0

作爲另一個問題的答案,你是否從stderr中讀取,而不僅僅是stdout,以獲取任何潛在的錯誤? – nos

回答

0

看看例子/ exec.c在libssh源代碼!

相關問題