NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERROR MESSAGES | NOTES | ATTRIBUTES
#include <arpa/ftpd/systemFilesys.h>int systemReceiveAscii(FtpConn * conn, FILE * instr, char * name, off_t offset);
Both routines read data from FILE instr until EOF is reached, and store it in the file called name , starting from offset offset . If the file does not exist yet, it is created. The effect of storing data in a file is implementation-dependent. The systemReceiveAscii routine gets lines of text (in the format defined by FTP) from the input stream and converts them to the file representation of text lines. The systemReceiveBin routine stores the data exactly as it receives it from the input stream. Both routines increment conn->byte_count by the number of bytes received. These routines periodically call ftpdOob (3FTPD) to check for any urgent conditions on the control line. When calling ftpdOob (3FTPD), conn->byte_count is up-to-date. In a traditional UNIX implementation, after successful completion of systemReceiveAscii , a call to systemSendAscii (3FTPD) using the same arguments should send a sequence of lines that begins with the same set of lines that were just received. In addition, if the file already contained lines prior to systemReceiveAscii , the lines not contained between offset and offset + <number-of-bytes-received> should be unchanged. In a traditional UNIX implementation, after successful completion of systemReceiveBin a call to systemSendBin (3FTPD) using the same arguments should send a flow of data that begins with the same stream of bytes that were just received. In addition, if the file already contained data prior to systemReceiveBin , the data not contained between offset and offset + <number-of-bytes-received> should be unchanged.
Both routines return 0 if the transfer completed successfully, -1 otherwise.
For a problem with instr
For a resource allocation problem
For a file write problem
For a file seek problem
For a file name problem
The ftpdOob (3FTPD) routine may longjmp (3STDC) to an older stack frame instead of returning. See this routine for the necessary precautions.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERROR MESSAGES | NOTES | ATTRIBUTES