linux C 下 如何检查 sftp服务器上是否存在某文件?
linux C 下 如何检查 sftp服务器上是否存在某文件?
本来想通过下面的方法做, 貌似也不太可靠、
1:通过sftp连到服务器。
2:
sftp_handle = libssh2_sftp_open(sftp_session, "1.txt", LIBSSH2_FXF_READ, 0);
if(NULL != sftp_handle)
{
sftp_handle = NULL;
g_count.check_remote_wlanfile_existed++;
return 0;
}
usleep(50);
do
{
sftp_handle = libssh2_sftp_open(sftp_session, filename,
LIBSSH2_FXF_WRITE | LIBSSH2_FXF_CREAT | LIBSSH2_FXF_TRUNC,
LIBSSH2_SFTP_S_IRUSR | LIBSSH2_SFTP_S_IWUSR |
LIBSSH2_SFTP_S_IRGRP | LIBSSH2_SFTP_S_IROTH );
if( !sftp_handle && (libssh2_session_last_errno(session) != LIBSSH2_ERROR_EAGAIN))
{
goto shutdown;
}
} while (!sftp_handle);
用libssh2_sftp_open 先读,再用libssh2_sftp_open写创建文件总是失败,不加前面的读,就没问题。
不知道是那里用的有问题。