*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> standard/accept (2)              
Title
Content
Arch
Section
 

Contents


ACCEPT(2)							     ACCEPT(2)


NAME    [Toc]    [Back]

     accept - accept a connection on a socket

SYNOPSIS    [Toc]    [Back]

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

     int accept	(int s,	struct sockaddr	*addr, int *addrlen);

DESCRIPTION    [Toc]    [Back]

     The argument s is a socket	that has been created with socket(2), bound to
     an	address	with bind(2), and is listening for connections after a
     listen(2).	 Accept	extracts the first connection on the queue of pending
     connections, creates a new	socket with the	same properties	of s and
     allocates a new file descriptor for the socket.  If no pending
     connections are present on	the queue, and the socket is not marked	as
     non-blocking, accept blocks the caller until a connection is present.  If
     the socket	is marked non-blocking and no pending connections are present
     on	the queue, accept returns an error as described	below.	The accepted
     socket may	not be used to accept more connections.	 The original socket s
     remains open.

     If	addr is	non-zero, it is	a result parameter that	is filled in with the
     address of	the connecting entity, as known	to the communications layer.
     The exact format of the addr parameter is determined by the domain	in
     which the communication is	occurring.  The	addrlen	is a value-result
     parameter.	It should initially contain the	amount of space	pointed	to by
     addr; on return it	will contain the actual	length (in bytes) of the
     address returned. If addr is zero,	addrlen	is ignored.

     This call is used with connection-based socket types, currently with
     SOCK_STREAM.

     It	is possible to select(2) a socket for the purposes of doing an accept
     by	selecting it for read.

RETURN VALUE    [Toc]    [Back]

     The call returns -1 on error.  If it succeeds, it returns a non-negative
     integer that is a descriptor for the accepted socket.

ERRORS    [Toc]    [Back]

     The accept	will fail if:

     [EBADF]		 The descriptor	is invalid.

     [ENOTSOCK]		 The descriptor	references a file, not a socket.

     [EOPNOTSUPP]	 The referenced	socket is not of type SOCK_STREAM.

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




									Page 1






ACCEPT(2)							     ACCEPT(2)



     [EWOULDBLOCK]	 The socket is marked non-blocking and no connections
			 are present to	be accepted.

     [EMFILE]		 The per-process descriptor table is full.

     [ENFILE]		 The system file table is full.

SEE ALSO    [Toc]    [Back]

      
      
     bind(2), connect(2), listen(2), select(2),	socket(2)

NOTES    [Toc]    [Back]

     ABI-compliant versions of the above call can be obtained from
     libsocket.so.

     When used with a socket of	type AF_UNIX, this call	does not return	a
     valid remote address, unless the remote end was explicitly	bound to a
     pathname.


									PPPPaaaaggggeeee 2222
[ Back ]
 Similar pages
Name OS Title
accept Tru64 Accept a new connection on a socket
connect IRIX initiate a connection on a socket
connect HP-UX initiate a connection on a socket
connect OpenBSD initiate a connection on a socket
connect IRIX initiate a connection on a socket
connect NetBSD initiate a connection on a socket
connect FreeBSD initiate a connection on a socket
connect Linux initiate a connection on a socket
mac_get_pid FreeBSD get the label of a file, socket, socket peer or process
mac_get FreeBSD get the label of a file, socket, socket peer or process
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service