6.1.1.7. Recv Family Of System Calls

ssize_t recv (int sockfd, void *buf, size_t len, int flags);
ssize_t recvfrom (int sockfd, void *buf, size_t len, int flags,
                  struct sockaddr *from, socklen_t *fromlen);
ssize_t recvmsg (int sockfd, struct msghdr *msg, int flags);

struct msghdr
{
  void         *msg_name;       // optional address
  socklen_t    msg_namelen;     // optional address length
  struct iovec *msg_iov;        // array for scatter gather
  size_t       msg_iovlen;      // array for scatter gather length
  void         *msg_control;    // additional control data
  socklen_t    msg_controllen;  // additional control data length
  int          msg_flags;
};