libssh2_sftp_open_ex man page

libssh2_sftp_open — open filehandle for file on SFTP.


#include <libssh2.h>
#include <libssh2_sftp.h>

libssh2_sftp_open_ex(LIBSSH2_SFTP *sftp, const char *filename,
                     unsigned int filename_len, unsigned long flags,
                     long mode, int open_type);


sftp - SFTP instance as returned by libssh2_sftp_init(3)

filename - Remote file/directory resource to open

filename_len - Length of filename

flags - Any reasonable combination of the LIBSSH2_FXF_* constants:

Open the file for reading.
Open the file for writing. If both this and LIBSSH2_FXF_READ are specified, the file is opened for both reading and writing.
Force all writes to append data at the end of the file.
If this flag is specified, then a new file will be created if one does not already exist (if LIBSSH2_FXF_TRUNC is specified, the new file will be truncated to zero length if it previously exists)
Forces an existing file with the same name to be truncated to zero length when creating a file by specifying LIBSSH2_FXF_CREAT. LIBSSH2_FXF_CREAT MUST also be specified if this flag is used.
Causes the request to fail if the named file already exists. LIBSSH2_FXF_CREAT MUST also be specified if this flag is used.

mode - POSIX file permissions to assign if the file is being newly created. See the LIBSSH2_SFTP_S_* convenience defines in <libssh2_sftp.h>

open_type - Either of LIBSSH2_SFTP_OPENFILE (to open a file) or LIBSSH2_SFTP_OPENDIR (to open a directory).

Return Value

A pointer to the newly created LIBSSH2_SFTP_HANDLE instance or NULL on failure.


LIBSSH2_ERROR_ALLOC - An internal memory allocation call failed.

LIBSSH2_ERROR_SOCKET_SEND - Unable to send data on socket.


LIBSSH2_ERROR_SFTP_PROTOCOL - An invalid SFTP protocol response was received on the socket, or an SFTP operation caused an errorcode to be returned by the server.

LIBSSH2_ERROR_EAGAIN - Marked for non-blocking I/O but the call would block.

See Also


Referenced By

libssh2_sftp_close_handle(3), libssh2_sftp_fstat_ex(3), libssh2_sftp_fsync(3), libssh2_sftp_init(3), libssh2_sftp_mkdir_ex(3), libssh2_sftp_open(3), libssh2_sftp_opendir(3), libssh2_sftp_read(3), libssh2_sftp_readdir_ex(3), libssh2_sftp_seek(3), libssh2_sftp_seek64(3), libssh2_sftp_statvfs(3), libssh2_sftp_tell(3), libssh2_sftp_tell64(3), libssh2_sftp_write(3).

1 Jun 2007 libssh2 0.15 libssh2 manual