socketpair(2)


NAME

   socketpair - create a pair of connected sockets

SYNOPSIS

   #include <sys/types.h>          /* See NOTES */
   #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 in
   the specified domain, of the specified type, and using  the  optionally
   specified  protocol.   For  further  details  of  these  arguments, see
   socket(2).

   The file descriptors used in referencing the new sockets  are  returned
   in sv[0] and sv[1].  The two sockets are indistinguishable.

RETURN VALUE

   On  success,  zero is returned.  On error, -1 is returned, and errno is
   set appropriately.

   On Linux (and other  systems),  socketpair()  does  not  modify  sv  on
   failure.   A  requirement  standardizing  this  behavior  was  added in
   POSIX.1-2016.

ERRORS

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

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

   EMFILE The per-process limit on the number of open file descriptors has
          been reached.

   ENFILE The system-wide limit on the total number of open files has been
          reached.

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

   EPROTONOSUPPORT
          The specified protocol is not supported on this machine.

CONFORMING TO

   POSIX.1-2001, POSIX.1-2008, 4.4BSD.   socketpair()  first  appeared  in
   4.2BSD.   It  is  generally portable to/from non-BSD systems supporting
   clones of the BSD socket layer (including System V variants).

NOTES

   On Linux, the only supported  domain  for  this  call  is  AF_UNIX  (or
   synonymously,   AF_LOCAL).    (Most   implementations   have  the  same
   restriction.)

   Since  Linux  2.6.27,  socketpair()  supports  the  SOCK_NONBLOCK   and
   SOCK_CLOEXEC flags in the type argument, as described in socket(2).

   POSIX.1  does  not  require  the  inclusion  of <sys/types.h>, and this
   header file is not required on Linux.  However, some  historical  (BSD)
   implementations  required  this  header file, and portable applications
   are probably wise to include it.

SEE ALSO

   pipe(2), read(2), socket(2), write(2), socket(7), unix(7)

COLOPHON

   This page is part of release 4.09 of the Linux  man-pages  project.   A
   description  of  the project, information about reporting bugs, and the
   latest    version    of    this    page,    can     be     found     at
   https://www.kernel.org/doc/man-pages/.


More Linux Commands

manpages/mpx.2.html
mpx(2) - unimplemented system calls - Linux manual page.....
These system calls are not implemented in the Linux kernel. RETURN VALUE These system calls always return -1 and set errno to ENOSYS. NOTES Note that ftime(3),

manpages/Tk_AddOption.3.html
Tk_AddOption(3) - Add an option to the option database......
This procedure is invoked to add an option to the database associated with tkwins main window. Name contains the option being specified and consists of names an

manpages/wprintf.3.html
wprintf(3) - formatted wide-character output conversion.....
The wprintf() family of functions is the wide-character equivalent of the printf(3) family of functions. It performs formatted output of wide characters. The wp

manpages/gst-launch-0.10.1.html
gst-launch-0.10(1) - build and run a GStreamer pipeline.....
PIPELINE CONTROL PIPELINE EXAMPLES ENVIRONMENT VARIABLES FILES SEE ALSO AUTHOR NAME gst-launch - build and run a GStreamer pipeline SYNOPSIS gst-launch [OPTION.

manpages/SDL_OpenAudio.3.html
SDL_OpenAudio(3) - Opens the audio device with the desired p
This function opens the audio device with the desired parameters, and returns 0 if successful, placing the actual hardware parameters in the structure pointed t

manpages/XAllowDeviceEvents.3.html
XAllowDeviceEvents(3) - release queued events (Man Page)....
The XAllowDeviceEvents function releases some queued events if the client has caused a device to freeze. It has no effect if the specified time is earlier than

manpages/Tk_FreeCursor.3.html
Tk_FreeCursor(3) - maintain database of cursors (Man Page)
These procedures manage a collection of cursors being used by an application. The procedures allow cursors to be re-used efficiently, thereby avoiding server ov

manpages/gtk-update-icon-cache.1.html
gtk-update-icon-cache(1) - Icon theme caching utility.......
gtk-update-icon-cache creates mmapable cache files for icon themes. It expects to be given the PATH to a icon theme directory containing an index.theme, e.g. /u

manpages/acl_get_file.3.html
acl_get_file(3) - get an ACL by filename - Linux man page...
The acl_get_file() function retrieves the access ACL associated with a file or directory, or the default ACL associated with a directory. The pathname for the f

manpages/terminfo.3ncurses.html
terminfo(3ncurses) - curses interfaces to terminfo database
These low-level routines must be called by programs that have to deal directly with the terminfo database to handle certain terminal capabilities, such as progr

manpages/Tcl_Exit.3.html
Tcl_Exit(3) - end the application or thread (and invoke exit
The procedures described here provide a graceful mechanism to end the execution of a Tcl application. Exit handlers are invoked to cleanup the applications stat

manpages/XChangeGC.3.html
XChangeGC(3) - create or free graphics contexts and graphics
The XCreateGC function creates a graphics context and returns a GC. The GC can be used with any destination drawable having the same root and depth as the speci





We can't live, work or learn in freedom unless the software we use is free.