我可以使用
libssh2_scp_send()
. 但是,当我尝试使用 接收文件
libssh2_scp_recv()
时,它不会struct stat
用数据填充参数。文件大小始终返回“0”。
struct stat file_info;
LIBSSH2_CHANNEL *channel = libssh2_scp_recv( session, source_file, &file_info );
printf( "file_info.st_size = %lu.\n", file_info.st_size );
任何其他字段file_info
也为空,即使channel
不是 NULL。
我的会话已正确打开并适用于任何其他 SSH 操作(运行远程命令、发送文件......)
我正在使用“libssh2-1.3.0”。
请问有什么线索吗?
真的谢谢。
编辑:
我将第三行更改为:
fprintf( stderr, "** file_info { st_size = %lu; st_atime = %lu }. SSH last error = %d",
file_info.st_size, file_info.st_atime,
libssh2_session_last_errno( info->session ) );
结果是:
** file_info { st_size = 0; st_atime = 0 }. SSH last error = 0`.
而已。返回的频道是有效的,我可以从中读取。libssh2_session_last_errno()
没有错误,但st_size
仍然是空的。