を使用して、一方の端からもう一方の端にファイルを正常に送信できます
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 );
NULL ではありませんが、他のフィールドfile_info
も空になります。channel
私のセッションは正しく開かれ、他の SSH 操作 (リモート コマンドの実行、ファイルの送信など) で動作します。
「libssh2-1.3.0」を使用しています。
手がかりはありますか?
本当にありがとう。
編集:
3 行目を次のように変更しました。
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
それでも空になります。