NAME
	  accept - Accepts a new connection on a socket

     SYNOPSIS
	  #include <sys/types.h>
	  #include <sys/socket.h>

	  int accept (

	       int socket,
	       struct sockaddr *address,
	       int *address_len	);

     PARAMETERS
	  socket
	       Specifies a socket that was created with	the socket()
	       function, has been bound	to an address with the bind()
	       function, and has issued	a successful call to the
	       listen()	function.

	  address
	       Points to a sockaddr structure, the format of which is
	       determined by the domain	and by the behavior requested
	       for the socket.	The sockaddr structure is an overlay
	       for a sockaddr_in, sockaddr_un, or sockaddr_ns struc-
	       ture, depending on which	of the supported address fami-
	       lies is active.	If the compile-time option
	       _SOCKADDR_LEN is	defined	before the sys/socket.h	header
	       file is included, the sockaddr structure	takes 4.4BSD
	       behavior, with a	field for specifying the length	of the
	       socket address.	Otherwise, the default 4.3BSD sockaddr
	       structure is used, with the length of the socket
	       address assumed to be 14	bytes or less.

	       If _SOCKADDR_LEN	is defined, the	4.3BSD sockaddr	struc-
	       ture is defined with the	name osockaddr.

	  address_len
	       Specifies the length of the sockaddr structure pointed
	       to by the address parameter.

     DESCRIPTION
	  The accept() function	extracts the first connection on the
	  queue	of pending connections,	creates	a new socket with the
	  same properties as the specified socket, and allocates a new
	  file descriptor for that socket.

	  If the listen() queue	is empty of connection requests, the
	  accept() function blocks a calling socket of the blocking
	  type until a connection is present, or returns an [EWOULD-
	  BLOCK] for sockets marked nonblocking.

	  The accepted socket cannot itself accept more	connections.
	  The original socket remains open and can accept more connec-
	  tions.

     RETURN VALUES
	  Upon successful completion, the accept() function returns
	  the nonnegative socket descriptor of the accepted socket,
	  places the address of	the peer in the	sockaddr structure
	  pointed to by	the address parameter, and sets	the
	  address_len parameter	to the length of address.  If the
	  accept() function fails, a value of -1 is returned and errno
	  is set to indicate the error.

     ERRORS
	  If the accept() function fails, errno	may be set to one of
	  the following	values:

	  [EINVAL]  The	socket is not accepting	connections.

	  [EBADF]   The	socket parameter is not	valid.

	  [ENOTSOCK]
		    The	socket parameter refers	to a file, not a
		    socket.

	  [EOPNOTSUPP]
		    The	referenced socket can not accept connections.

	  [EFAULT]  The	address	parameter is not in a writable part of
		    the	user address space.

	  [EWOULDBLOCK]
		    The	socket is marked nonblocking, and no connec-
		    tions are present to be accepted.

	  [EMFILE]  There are too many open file descriptors.

     RELATED INFORMATION
	  Functions: bind(2), connect(2), listen(2), socket(2)













Acknowledgement and Disclaimer