---
name: "sctp_generic_recvmsg"
section: "2freebsd"
platform: "linux"
package: "freebsd-manpages"
version: "12.2-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/sctp_generic_recvmsg/2freebsd"
---

# sctp\_generic\_recvmsg(2freebsd)

receive data from a peer

## NAME

**sctp\_generic\_recvmsg** – receive data from a peer

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<sys/types.h\>**

**#include \<sys/socket.h\>**

**#include \<netinet/sctp.h\>**

*int*\

**sctp\_generic\_recvmsg**(*int s*, *struct iovec \*iov*, *int iovlen*, *struct sockaddr \*from*, *socklen\_t \*fromlen*, *struct sctp\_sndrcvinfo \*sinfo*, *int \*msgflags*);

## DESCRIPTION

**sctp\_generic\_recvmsg**() is the true system call used by the [sctp\_recvmsg(3)](/sctp_recvmsg/3.md) function call. This call is more efficient since it is a true system call but it is specific to FreeBSD and can be expected *not* to be present on any other operating system. For detailed usage please see the [sctp\_recvmsg(3)](/sctp_recvmsg/3.md) function call.

## RETURN VALUES

The call returns the number of bytes read on success and -1 upon failure.

## ERRORS

- \[EBADF\]

  The argument *s* is not a valid descriptor.

- \[ENOTSOCK\]

  The argument *s* is not a socket.

## SEE ALSO

[sctp\_recvmsg(3)](/sctp_recvmsg/3.md), [sctp(4)](/sctp/4.md)
