diff options
Diffstat (limited to 'man-pages-posix-2003/man3p/socket.3p')
-rw-r--r-- | man-pages-posix-2003/man3p/socket.3p | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/man-pages-posix-2003/man3p/socket.3p b/man-pages-posix-2003/man3p/socket.3p new file mode 100644 index 0000000..e4db093 --- /dev/null +++ b/man-pages-posix-2003/man3p/socket.3p @@ -0,0 +1,155 @@ +.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved +.TH "SOCKET" 3P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" socket +.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 +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 . |