【发布时间】:2021-08-02 13:33:49
【问题描述】:
我想使用 libssh 0.9.5 从 SFTP 服务器连接并异步读取文件。但是这个简单的工作示例:
//https://api.libssh.org/master/libssh_tutor_sftp.html#sftp_read
#include <libssh/libssh.h>
#include <libssh/sftp.h>
#include <iostream>
using namespace std;
int main(){
ssh_session sshs = ssh_new();
if(sshs == NULL){
cerr << "Error allocating SSH session: " << ssh_get_error(sshs) << endl;
return SSH_ERROR;
}
ssh_options_set(sshs, SSH_OPTIONS_HOST, "reach");
ssh_options_set(sshs, SSH_OPTIONS_USER, "reach");
//SSH is working fine
int rc = ssh_connect(sshs);
if(rc != SSH_OK){
cerr << "Error connecting to localhost: " << ssh_get_error(sshs) << endl;
return SSH_ERROR;
}
//Now we talking....
sftp_session sftps = sftp_new(sshs);
if(sftps == NULL){
cerr << "Error allocating SFTP session: " << ssh_get_error(sshs) << endl;
return SSH_ERROR;
}
sftp_free(sftps);
ssh_disconnect(sshs);
ssh_free(sshs);
return 0;
}
产生Error allocating SFTP session: sftp_new: Out of memory。
我可以用其他软件连接到reach@reach上的SFTP服务器。
【问题讨论】: