diff options
Diffstat (limited to 'man/man2/socketpair.2')
-rw-r--r-- | man/man2/socketpair.2 | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/man/man2/socketpair.2 b/man/man2/socketpair.2 new file mode 100644 index 0000000..a55c03d --- /dev/null +++ b/man/man2/socketpair.2 @@ -0,0 +1,116 @@ +.\" Copyright (c) 1983, 1991 The Regents of the University of California. +.\" All rights reserved. +.\" +.\" SPDX-License-Identifier: BSD-4-Clause-UC +.\" +.\" @(#)socketpair.2 6.4 (Berkeley) 3/10/91 +.\" +.\" Modified 1993-07-24 by Rik Faith <faith@cs.unc.edu> +.\" Modified 1996-10-22 by Eric S. Raymond <esr@thyrsus.com> +.\" Modified 2002-07-22 by Michael Kerrisk <mtk.manpages@gmail.com> +.\" Modified 2004-06-17 by Michael Kerrisk <mtk.manpages@gmail.com> +.\" 2008-10-11, mtk: Add description of SOCK_NONBLOCK and SOCK_CLOEXEC +.\" +.TH socketpair 2 2024-05-02 "Linux man-pages (unreleased)" +.SH NAME +socketpair \- create a pair of connected sockets +.SH LIBRARY +Standard C library +.RI ( libc ", " \-lc ) +.SH SYNOPSIS +.nf +.B #include <sys/socket.h> +.P +.BI "int socketpair(int " domain ", int " type ", int " protocol \ +", int " sv [2]); +.fi +.SH DESCRIPTION +The +.BR socketpair () +call creates an unnamed pair of connected sockets in the specified +.IR domain , +of the specified +.IR type , +and using the optionally specified +.IR protocol . +For further details of these arguments, see +.BR socket (2). +.P +The file descriptors used in referencing the new sockets are returned in +.I sv[0] +and +.IR sv[1] . +The two sockets are indistinguishable. +.SH RETURN VALUE +On success, zero is returned. +On error, \-1 is returned, +.I errno +is set to indicate the error, and +.I sv +is left unchanged +.P +On Linux (and other systems), +.BR socketpair () +does not modify +.I sv +on failure. +A requirement standardizing this behavior was added in POSIX.1-2008 TC2. +.\" http://austingroupbugs.net/view.php?id=483 +.SH ERRORS +.TP +.B EAFNOSUPPORT +The specified address family is not supported on this machine. +.TP +.B EFAULT +The address +.I sv +does not specify a valid part of the process address space. +.TP +.B EMFILE +The per-process limit on the number of open file descriptors has been reached. +.TP +.B ENFILE +The system-wide limit on the total number of open files has been reached. +.TP +.B EOPNOTSUPP +The specified protocol does not support creation of socket pairs. +.TP +.B EPROTONOSUPPORT +The specified protocol is not supported on this machine. +.SH VERSIONS +On Linux, the only supported domains for this call are +.B AF_UNIX +(or synonymously, +.BR AF_LOCAL ) +and +.B AF_TIPC +.\" commit: 70b03759e9ecfae400605fa34f3d7154cccbbba3 +(since Linux 4.12). +.SH STANDARDS +POSIX.1-2008. +.SH HISTORY +POSIX.1-2001, 4.4BSD. +.P +.BR 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). +.P +Since Linux 2.6.27, +.BR socketpair () +supports the +.B SOCK_NONBLOCK +and +.B SOCK_CLOEXEC +flags in the +.I type +argument, as described in +.BR socket (2). +.SH SEE ALSO +.BR pipe (2), +.BR read (2), +.BR socket (2), +.BR write (2), +.BR socket (7), +.BR unix (7) |