【发布时间】:2012-08-01 19:57:12
【问题描述】:
我可以成功地将文件从一端发送到另一端
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 仍然为空。
【问题讨论】: