FreeBSD Manual Pages
FTPIO(3) BSD Library Functions Manual FTPIO(3) NAME ftpLogin, ftpChdir, ftpErrno, ftpGetModtime, ftpGetSize, ftpGet, ftpPut, ftpBinary, ftpPassive, ftpVerbose, ftpGetURL, ftpPutURL, ftpLoginAf, ftpGetURLAf, ftpPutURLAf -- FTPIO user library SYNOPSIS #include <ftpio.h> FILE * ftpLogin(char *host, char *user, char *passwd, int ftp_port, int verbose, int *retcode); int ftpChdir(FILE *stream, char *dirname); int ftpErrno(FILE *stream); const char * ftpErrString(int errno); time_t ftpGetModtime(FILE *stream, char *file); off_t ftpGetSize(FILE *stream, char *file); FILE * ftpGet(FILE *stream, char *file, off_t *seekto); FILE * ftpPut(FILE *stream, char *file); int ftpAscii(FILE *stream); int ftpBinary(FILE *stream); int ftpPassive(FILE *stream, int status); void ftpVerbose(FILE *stream, int status); FILE * ftpGetURL(char *url, char *user, char *passwd, int *retcode); FILE * ftpPutURL(char *url, char *user, char *passwd, int *retcode); FILE * ftpLoginAf(char *host, int af, char *user, char *passwd, int ftp_port, int verbose, int *retcode); FILE * ftpGetURLAf(char *url, int af, char *user, char *passwd, int *retcode); FILE * ftpPutURLAf(char *url, int af, char *user, char *passwd, int *retcode); DESCRIPTION These functions implement a high-level library for managing FTP connec- tions. The ftpLogin() function attempts to log in using the supplied user, passwd, ftp_port (if passed as 0, ftp_port defaults to the standard ftp port of 21) and verbose fields. If it is successful, a standard stream descriptor is returned which should be passed to subsequent FTP opera- tions. On failure, NULL is returned and retcode will have the error code returned by the foreign server. The ftpChdir() function attempts to issue a server CD command to the di- rectory named in dir. On success, zero is returned. On failure, the er- ror code from the server. The ftpErrno() function returns the server failure code for the last op- eration (useful for seeing more about what happened if you are familiar with FTP error codes). The ftpErrString() function returns a human read- able version of the supplied server failure code. The ftpGet() function attempts to retrieve the file named by the file ar- gument (which is assumed to be relative to the FTP server's current di- rectory, see ftpChdir()) and returns a new FILE* pointer for the file or NULL on failure. If seekto is non-NULL, the contents of the integer it points to will be used as a restart point for the file, that is to say that the stream returned will point *seekto bytes into the file gotten (this is handy for restarting failed transfers efficiently). If the seek operation fails, the value of *seekto will be zero'd. The ftpGetModtime() function returns the last modification time of the file named by the file argument. If the file could not be opened or stat'd, 0 is returned. The ftpGetSize() function returns the size in bytes of the file named by the file argument. If the file could not be opened or stat'd, -1 is re- turned. The ftpPut() function attempts to create a new file named by the file ar- gument (which is assumed to be relative to the FTP server's current di- rectory, see ftpChdir()) and returns a new stream pointer for the file or NULL on failure. The ftpAscii() function sets ASCII mode for the current server connection named by stream. The ftpBinary() function sets binary mode for the current server connec- tion named by stream. The ftpPassive() function sets passive mode (for firewalls) for the cur- rent server connection named by stream to boolean value status. The ftpVerbose() function sets the verbosity mode for the current server connection named by stream to boolean value status. The ftpGetURL() function attempts to retrieve the file named by the sup- plied URL and can be considered equivalent to the combined ftpLogin(), ftpChdir() and ftpGet() operations except that no server stream is ever returned - the connection to the server closes when the file has been completely read. Use the lower-level routines if multiple gets are re- quired as it will be far more efficient. The ftpPutURL() function attempts to create the file named by the sup- plied URL and can be considered equivalent to the combined ftpLogin(), ftpChdir() and ftpPut() operations except that no server stream is ever returned - the connection to the server closes when the file has been completely written. Use the lower-level routines if multiple puts are required as it will be far more efficient. The ftpLoginAf(), ftpGetURLAf(), ftpPutURLAf() functions are same as ftpLogin(), ftpGetURL(), ftpPutURL() except that they are able to specify address family af. ENVIRONMENT FTP_TIMEOUT Maximum time, in seconds, to wait for a response from the peer before aborting an FTP connection. FTP_PASSIVE_MODE If defined, forces the use of passive mode, unless equal to ``NO'' or ``no'' in which case active mode is forced. If defined, the setting of this variable always overrides any calls to ftpPassive(). HISTORY Started life as Poul-Henning Kamp's ftp driver for the system installa- tion utility, later significantly mutated into a more general form as an extension of stdio by Jordan Hubbard. Also incorporates some ideas and extensions from Jean-Marc Zucconi. AUTHORS Jordan Hubbard, Poul-Henning Kamp and Jean-Marc Zucconi BUGS I am sure you can get this thing's internal state machine confused if you really work at it, but so far it has proven itself pretty robust in all my tests. BSD June 17, 1996 BSD
NAME | SYNOPSIS | DESCRIPTION | ENVIRONMENT | HISTORY | AUTHORS | BUGS
Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ftpio&sektion=3&manpath=FreeBSD+8.2-RELEASE>