Next: Closing a Socket, Up: Open/Close Sockets
The primitive for creating a socket is the socket function,
declared in sys/socket.h.
This function creates a socket and specifies communication style style, which should be one of the socket styles listed in Communication Styles. The namespace argument specifies the namespace; it must be
PF_LOCAL(see Local Namespace) orPF_INET(see Internet Namespace). protocol designates the specific protocol (see Socket Concepts); zero is usually right for protocol.The return value from
socketis the file descriptor for the new socket, or-1in case of error. The followingerrnoerror 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
socketfunction 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 Local Socket Example, or Inet Example.