我在Linux下为我的c ++应用程序使用libssh2库。 使用非阻塞API时,SFTP库函数可以在内部管理用户的未决请求吗?
例如:
LIBSSH2_SFTP_HANDLE *pSftpHandle = libssh2_sftp_open(m_pSftpSession,
FILENAME1,
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 (libssh2_session_last_errno(m_pSshSession) == LIBSSH2_ERROR_EAGAIN)
{
pSftpHandle = libssh2_sftp_open(m_pSftpSession,FILENAME2,
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);
}
在上面的示例中,我是否必须等到libssh2_sftp_open()对于FILENAME1成功/失败返回之后,再使用FILENAME2对其进行调用? 我问的原因是因为我在执行上述操作时遇到不确定的行为。 如果我等到libssh2_sftp_open()完成FILENAME1的处理(不返回LIBSSH2_ERROR_EAGAIN),一切都会顺利进行。
谢谢