Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SOCKETPAIR(2)		  FreeBSD System Calls Manual		 SOCKETPAIR(2)

NAME
     socketpair	-- create a pair of connected sockets

SYNOPSIS
     #include <sys/socket.h>

     int
     socketpair(int domain, int	type, int protocol, int	sv[2]);

DESCRIPTION
     The socketpair() call creates an unnamed pair of connected	sockets.  The
     descriptors used in referencing the new sockets are returned in sv[0] and
     sv[1].  The two sockets are indistinguishable.

     The only supported	domain is AF_UNIX.  Possible values for	the type and
     protocol arguments	are explained in the socket(2) manual page.  The only
     useful value for protocol is 0, which will	let the	system select an ap-
     propriate protocol	for the	requested socket type.

     Any combination of	the following flags may	additionally be	used in	the
     type argument:

	   SOCK_CLOEXEC	   Set close-on-exec flag on both the new descriptors.
	   SOCK_NONBLOCK   Set non-blocking I/O	mode on	both the new sockets.

RETURN VALUES
     Upon successful completion, the value 0 is	returned; otherwise the
     value -1 is returned and the global variable errno	is set to indicate the
     error.

ERRORS
     The call succeeds unless:

     [EAFNOSUPPORT]	The specified address family is	not supported on this
			machine.

     [EPROTONOSUPPORT]	The specified protocol is not supported	on this	ma-
			chine.

     [EOPNOTSUPP]	The specified protocol does not	support	creation of
			socket pairs.

     [EPROTOTYPE]	The combination	of the specified protocol and type is
			not supported.

     [EMFILE]		The per-process	descriptor table is full.

     [ENFILE]		The system file	table is full.

     [ENOBUFS]		Insufficient resources were available in the system to
			perform	the operation.

     [EFAULT]		The address sv does not	specify	a valid	part of	the
			process	address	space.

SEE ALSO
     pipe(2), read(2), socket(2), write(2)

STANDARDS
     The socketpair() function conforms	to IEEE	Std 1003.1-2008	("POSIX.1").
     The SOCK_CLOEXEC and SOCK_NONBLOCK	flags are expected to conform to a fu-
     ture revision of that standard.

HISTORY
     The socketpair() function call appeared in	4.2BSD.	 Support for the
     SOCK_CLOEXEC and SOCK_NONBLOCK flags appeared in OpenBSD 5.7.

FreeBSD	13.0			 April 8, 2018			  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | STANDARDS | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=socketpair&sektion=2&manpath=OpenBSD+6.9>

home | help