DragonFly On-Line Manual Pages
ftp_opendir(3) C Library Calls ftp_opendir(3)
NAME
ftp_opendir, ftp_readdir, ftp_rewinddir, ftp_telldir, ftp_seekdir,
ftp_closedir - FTP directory access functions
SYNOPSIS
#include <libfget.h>
int ftp_opendir(FTPDIR **ftpdir, FTP *ftp, char *dir);
int ftp_readdir(FTPDIR *ftpdir, struct ftpdirent *ftpdirent);
void ftp_rewinddir(FTPDIR *ftpdir);
off_t ftp_telldir(FTPDIR *ftpdir);
void ftp_seekdir(FTPDIR *ftpdir, off_t loc);
void ftp_closedir(FTPDIR *ftpdir);
VERSION
This man page documents version 1.3 of libfget.
DESCRIPTION
The ftp_opendir() function opens the directory dir on the FTP server
associated with ftp. It allocates memory for an FTPDIR handle and
changes ftpdir to point to the newly-allocated memory.
The ftp_readdir() function writes a description of the next file in
directory ftpdir to the structure pointed to by ftpdirent.
The ftp_rewinddir() function resets ftpdir such that the next call to
ftp_readdir() will return the first file in the directory.
The ftp_telldir() function returns the current index into directory
ftpdir.
The ftp_seekdir() function sets the current index in directory ftpdir
to loc.
The ftp_closedir() function closes the directory handle and frees
memory associated with ftpdir.
RETURN VALUE
The ftp_opendir() function returns 0 on success, or -1 on error (and
sets errno).
The ftp_readdir() function returns 1 when an entry is returned, or 0 at
the end of the directory. It cannot fail.
The ftp_telldir() function returns the requested index. It cannot
fail.
ERRORS
The ftp_opendir() function fails if:
ECONNRESET
The server shut down the connection. The caller is then
responsible for calling ftp_quit() with the FTP_QUIT_FAST flag
set.
ETIMEDOUT
The operation timed out. (The timeout interval can be set via
the FTP_OPT_IO_TIMEOUT option; see the ftp_set_options(3) man
page for details.)
EINVAL Unexpected response code received from server.
EAGAIN An attempt was made to send a request to the server while the
data connection is open.
It may also fail for any of the errors specified for the underlying
poll(2), read(2), write(2), socket(2), connect(2), fcntl(2) (using
F_GETFL and F_SETFL), shutdown(2), close(2), or calloc(3) system and
library calls.
NOTES
Because of the limitations of the FTP protocol, applications must not
rely on being able to call ftp_opendir() while an FTPFILE handle is
open. See libfget(3) for more information.
EXAMPLE
The following code shows how to read a directory from an FTP server:
FTP *ftp;
FTPDIR *ftpdir;
struct ftpdirent fde;
/* ... call ftp_connect(3) and ftp_login(3) ... */
if (ftp_opendir(&ftpdir, ftp, "/path/to/directory") == -1)
{
perror("ftp_opendir()");
exit(1);
}
while (ftp_readdir(ftpdir, &fde))
{
puts(fde.fd_name);
}
ftp_closedir(ftpdir);
SEE ALSO
libfget(3), opendir(3), readdir(3), rewinddir(3), seekdir(3),
telldir(3), closedir(3)
Feep Networks January 2004 ftp_opendir(3)