Creating a Socket
-----------------
The primitive for creating a socket is the `socket' function,
declared in `sys/socket.h'.
- Function: int socket (int NAMESPACE, int STYLE, int PROTOCOL)
This function creates a socket and specifies communication style
STYLE, which should be one of the socket styles listed in Note:Communication Styles. The NAMESPACE argument specifies the
namespace; it must be `PF_LOCAL' (Note:Local Namespace) or
`PF_INET' (Note:Internet Namespace). PROTOCOL designates the
specific protocol (Note:Socket Concepts); zero is usually right
for PROTOCOL.
The return value from `socket' is the file descriptor for the new
socket, or `-1' in case of error. The following `errno' error
conditions are defined for this function:
`EPROTONOSUPPORT'
The PROTOCOL or STYLE is not supported by the NAMESPACE
specified.
`EMFILE'
The process already has too many file descriptors open.
`ENFILE'
The system already has too many file descriptors open.
`EACCES'
The process does not have the privilege to create a socket of
the specified STYLE or PROTOCOL.
`ENOBUFS'
The system ran out of internal buffer space.
The file descriptor returned by the `socket' function supports both
read and write operations. However, like pipes, sockets do not
support file positioning operations.
For examples of how to call the `socket' function, see Note:Local
Socket Example, or Note:Inet Example.