summaryrefslogtreecommitdiffstats
path: root/man3p/socket.3p
diff options
context:
space:
mode:
Diffstat (limited to 'man3p/socket.3p')
-rw-r--r--man3p/socket.3p150
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 .