COHERENT manpages
This page displays the COHERENT manpage for recvfrom() [Receive a message from a socket].
List of available manpages
Index
recvfrom() -- Sockets Function (libsocket) Receive a message from a socket #include <sys/compat.h> #include <sys/socket.h> #include "socketvar.h" int recvfrom (socket, buffer, length, flags, address, addrlen) int socket; char *buffer; int length; int flags; sockaddr_t *from; int *alen; recvfrom() receives messages from another socket. Unlike the related function recv(), recvfrom() receives data regardless of whether the socket is connected or not. socket is the file descriptor of the socket from which data are to be received. It may or may not be connected. buffer is the chunk of memory in user space into which the data are to be written; it is length bytes long. If a received message is longer than length bytes, excess bytes can be discarded, depending on the type of socket from which the message is received. If from is not NULL, recvfrom() initializes it to the the source address of the message. It initializes alen to the size of the buffer associated with address, and modifies it upon return to the size of the address stored there. If no messages are waiting at socket, recvfrom() waits for a message to arrive, unless the socket is nonblocking. In this case, it returns -1 and sets errno, as described below. flags ORs together either or both of the following flags: MSG_OOB Read any out-of-band data present on socket, rather than the regular, in-band data. MSG_PEEK ``Peek'' at the data present on socket. The data are returned but remain on socket; therefore, another call to recvfrom() or recv() retrieves the same data. If all goes well, recvfrom() returns the number of bytes received. If an error occurs, it returns -1 and sets errno to one of the following values: EBADF socket is an invalid descriptor. ENOTSOCK socket is the descriptor of a file, not a socket. EINTR The operation was interrupted by delivery of a signal before any data was available to be received. EAGAIN socket is marked non-blocking, but the requested operation would block. ENOMEM Too little user memory is available to complete the operation. See Also libsocket, recv() Notes At present, the COHERENT implementation of recvfrom() always behaves as if address were initialized to NULL.