diff options
Diffstat (limited to 'man3p/socket.3p')
-rw-r--r-- | man3p/socket.3p | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/man3p/socket.3p b/man3p/socket.3p new file mode 100644 index 000000000..bf5857ebe --- /dev/null +++ b/man3p/socket.3p @@ -0,0 +1,150 @@ +.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved +.TH "SOCKET" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" socket +.SH NAME +socket \- create an endpoint for communication +.SH SYNOPSIS +.LP +\fB#include <sys/socket.h> +.br +.sp +int socket(int\fP \fIdomain\fP\fB, int\fP \fItype\fP\fB, int\fP \fIprotocol\fP\fB); +.br +\fP +.SH DESCRIPTION +.LP +The \fIsocket\fP() function shall create an unbound socket in a communications +domain, and return a file descriptor that can be +used in later function calls that operate on sockets. +.LP +The \fIsocket\fP() function takes the following arguments: +.TP 7 +\fIdomain\fP +Specifies the communications domain in which a socket is to be created. +.TP 7 +\fItype\fP +Specifies the type of socket to be created. +.TP 7 +\fIprotocol\fP +Specifies a particular protocol to be used with the socket. Specifying +a \fIprotocol\fP of 0 causes \fIsocket\fP() to use an +unspecified default protocol appropriate for the requested socket +type. +.sp +.LP +The \fIdomain\fP argument specifies the address family used in the +communications domain. The address families supported by the +system are implementation-defined. +.LP +Symbolic constants that can be used for the domain argument are defined +in the \fI<sys/socket.h>\fP header. +.LP +The \fItype\fP argument specifies the socket type, which determines +the semantics of communication over the socket. The +following socket types are defined; implementations may specify additional +socket types: +.TP 7 +SOCK_STREAM +Provides sequenced, reliable, bidirectional, connection-mode byte +streams, and may provide a transmission mechanism for +out-of-band data. +.TP 7 +SOCK_DGRAM +Provides datagrams, which are connectionless-mode, unreliable messages +of fixed maximum length. +.TP 7 +SOCK_SEQPACKET +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. +.sp +.LP +If the \fIprotocol\fP argument is non-zero, it shall specify a protocol +that is supported by the address family. If the +\fIprotocol\fP argument is zero, the default protocol for this address +family and type shall be used. The protocols supported by +the system are implementation-defined. +.LP +The process may need to have appropriate privileges to use the \fIsocket\fP() +function or to create some sockets. +.SH RETURN VALUE +.LP +Upon successful completion, \fIsocket\fP() shall return a non-negative +integer, the socket file descriptor. Otherwise, a value +of -1 shall be returned and \fIerrno\fP set to indicate the error. +.SH ERRORS +.LP +The \fIsocket\fP() function shall fail if: +.TP 7 +.B EAFNOSUPPORT +.sp +The implementation does not support the specified address family. +.TP 7 +.B EMFILE +No more file descriptors are available for this process. +.TP 7 +.B ENFILE +No more file descriptors are available for the system. +.TP 7 +.B EPROTONOSUPPORT +.sp +The protocol is not supported by the address family, or the protocol +is not supported by the implementation. +.TP 7 +.B EPROTOTYPE +The socket type is not supported by the protocol. +.sp +.LP +The \fIsocket\fP() function may fail if: +.TP 7 +.B EACCES +The process does not have appropriate privileges. +.TP 7 +.B ENOBUFS +Insufficient resources were available in the system to perform the +operation. +.TP 7 +.B ENOMEM +Insufficient memory was available to fulfill the request. +.sp +.LP +\fIThe following sections are informative.\fP +.SH EXAMPLES +.LP +None. +.SH APPLICATION USAGE +.LP +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. +.LP +The application can determine whether an address family is supported +by trying to create a socket with \fIdomain\fP set to the +protocol in question. +.SH RATIONALE +.LP +None. +.SH FUTURE DIRECTIONS +.LP +None. +.SH SEE ALSO +.LP +\fIaccept\fP() , \fIbind\fP() , \fIconnect\fP() +, \fIgetsockname\fP() , \fIgetsockopt\fP() , \fIlisten\fP() , \fIrecv\fP() +, \fIrecvfrom\fP() , \fIrecvmsg\fP() , \fIsend\fP() , \fIsendmsg\fP() +, \fIsetsockopt\fP() , \fIshutdown\fP() , \fIsocketpair\fP() , the +Base Definitions volume of IEEE\ Std\ 1003.1-2001, \fI<netinet/in.h>\fP, +\fI<sys/socket.h>\fP +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 6, Copyright (C) 2001-2003 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 . |