.\" $Id: libssh2_sftp_readdirnb.3,v 1.3 2007/04/22 17:18:03 jehousley Exp $
.\"
.TH libssh2_sftp_readdir 3 "16 Apr 2007" "libssh2 0.15" "libssh2 manual"
.SH NAME
libssh2_sftp_readdirnb - read directory data from an SFTP handle non-blocking
.SH SYNOPSIS
#include <libssh2.h>
#include <libssh2_sftp.h>

int libssh2_sftp_readdirnb(LIBSSH2_SFTP_HANDLE *handle, char *buffer, 
                         size_t buffer_maxlen, LIBSSH2_SFTP_ATTRIBUTES *attrs);

.SH DESCRIPTION
Read a block of data from a LIBSSH2_SFTP_HANDLE non-blocking. This method is 
modeled after the POSIX \fIreaddir(3)\fP however, it uses a variable sized 
directory entry (filename) buffer and returns statbuf type data in the same 
call.

\fIhandle\fP is the SFTP File Handle as returned by 
\fIlibssh2_sftp_diropen(3)\fP.

\fIbuffer\fP is a pointer to a pre-allocated buffer of at least
\fIbuffer_maxlen\fP bytes to read data into.

\fIbuffer_maxlen\fP is the length of buffer in bytes. If the length of the 
filename is longer than the space provided by buffer_maxlen it will be 
truncated to fit.

\fIattrs\fP is a pointer to LIBSSH2_SFTP_ATTRIBUTES storage to populate 
statbuf style data into.

.SH RETURN VALUE
Number of bytes actually populated into buffer, or negative on failure.  It
returns LIBSSH2CHANNEL_EAGAIN when it would otherwise block. While
LIBSSH2CHANNEL_EAGAIN is a negative number, it isn't really a failure per se.


.SH "SEE ALSO"
.BR libssh2_sftp_opendir(3)
.BR libssh2_sftp_readdirnb(3)