diff options
Diffstat (limited to 'upstream/archlinux/man3p/socketpair.3p')
-rw-r--r-- | upstream/archlinux/man3p/socketpair.3p | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/upstream/archlinux/man3p/socketpair.3p b/upstream/archlinux/man3p/socketpair.3p new file mode 100644 index 00000000..c3bf3e2f --- /dev/null +++ b/upstream/archlinux/man3p/socketpair.3p @@ -0,0 +1,178 @@ +'\" et +.TH SOCKETPAIR "3P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" +.SH PROLOG +This manual page is part of the POSIX Programmer's Manual. +The Linux implementation of this interface may differ (consult +the corresponding Linux manual page for details of Linux behavior), +or the interface may not be implemented on Linux. +.\" +.SH NAME +socketpair +\(em create a pair of connected sockets +.SH SYNOPSIS +.LP +.nf +#include <sys/socket.h> +.P +int socketpair(int \fIdomain\fP, int \fItype\fP, int \fIprotocol\fP, + int \fIsocket_vector\fP[2]); +.fi +.SH DESCRIPTION +The +\fIsocketpair\fR() +function shall create an unbound pair of connected sockets in a +specified +.IR domain , +of a specified +.IR type , +under the protocol optionally specified by the +.IR protocol +argument. The two sockets shall be identical. The file descriptors +used in referencing the created sockets shall be returned in +.IR socket_vector [0] +and +.IR socket_vector [1]. +The file descriptors shall be allocated as described in +.IR "Section 2.14" ", " "File Descriptor Allocation". +.P +The +\fIsocketpair\fR() +function takes the following arguments: +.IP "\fIdomain\fR" 12 +Specifies the communications domain in which the sockets are to be +created. +.IP "\fItype\fR" 12 +Specifies the type of sockets to be created. +.IP "\fIprotocol\fR" 12 +Specifies a particular protocol to be used with the sockets. +Specifying a +.IR protocol +of 0 causes +\fIsocketpair\fR() +to use an unspecified default protocol appropriate for the requested +socket type. +.IP "\fIsocket_vector\fR" 12 +Specifies a 2-integer array to hold the file descriptors of the created +socket pair. +.P +The +.IR type +argument specifies the socket type, which determines the semantics of +communications over the socket. The following socket types are defined; +implementations may specify additional socket types: +.IP SOCK_STREAM 14 +Provides sequenced, reliable, bidirectional, connection-mode byte +streams, and may provide a transmission mechanism for out-of-band +data. +.IP SOCK_DGRAM 14 +Provides datagrams, which are connectionless-mode, unreliable messages +of fixed maximum length. +.IP SOCK_SEQPACKET 14 +Provides sequenced, reliable, bidirectional, connection-mode +transmission paths for records. A record can be sent using one or more +output operations and received using one or more input operations, but +a single operation never transfers part of more than one record. Record +boundaries are visible to the receiver via the MSG_EOR flag. +.P +If the +.IR protocol +argument is non-zero, it shall specify a protocol that is supported by +the address family. If the +.IR protocol +argument is zero, the default protocol for this address family and type +shall be used. The protocols supported by the system are +implementation-defined. +.P +The process may need to have appropriate privileges to use the +\fIsocketpair\fR() +function or to create some sockets. +.SH "RETURN VALUE" +Upon successful completion, this function shall return 0; otherwise, +\-1 shall be returned and +.IR errno +set to indicate the error, no file descriptors shall be allocated, +and the contents of +.IR socket_vector +shall be left unmodified. +.SH ERRORS +The +\fIsocketpair\fR() +function shall fail if: +.TP +.BR EAFNOSUPPORT +.br +The implementation does not support the specified address family. +.TP +.BR EMFILE +All, or all but one, of the file descriptors available to the +process are currently open. +.TP +.BR ENFILE +No more file descriptors are available for the system. +.TP +.BR EOPNOTSUPP +The specified protocol does not permit creation of socket pairs. +.TP +.BR EPROTONOSUPPORT +.br +The protocol is not supported by the address family, or the protocol is +not supported by the implementation. +.TP +.BR EPROTOTYPE +The socket type is not supported by the protocol. +.P +The +\fIsocketpair\fR() +function may fail if: +.TP +.BR EACCES +The process does not have appropriate privileges. +.TP +.BR ENOBUFS +Insufficient resources were available in the system to perform the +operation. +.TP +.BR ENOMEM +Insufficient memory was available to fulfill the request. +.LP +.IR "The following sections are informative." +.SH "EXAMPLES" +None. +.SH "APPLICATION USAGE" +The documentation for specific address families specifies which +protocols each address family supports. The documentation for specific +protocols specifies which socket types each protocol supports. +.P +The +\fIsocketpair\fR() +function is used primarily with UNIX domain sockets and need not be +supported for other domains. +.SH "RATIONALE" +None. +.SH "FUTURE DIRECTIONS" +None. +.SH "SEE ALSO" +.IR "Section 2.14" ", " "File Descriptor Allocation", +.IR "\fIsocket\fR\^(\|)" +.P +The Base Definitions volume of POSIX.1\(hy2017, +.IR "\fB<sys_socket.h>\fP" +.\" +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1-2017, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 7, 2018 Edition, +Copyright (C) 2018 by the Institute of +Electrical and Electronics Engineers, Inc and The Open Group. +In the event of any discrepancy between this version and the original IEEE and +The Open Group Standard, the original IEEE and The Open Group Standard +is the referee document. The original Standard can be obtained online at +http://www.opengroup.org/unix/online.html . +.PP +Any typographical or formatting errors that appear +in this page are most likely +to have been introduced during the conversion of the source files to +man page format. To report such errors, see +https://www.kernel.org/doc/man-pages/reporting_bugs.html . |