Hallo, dies ist ein Test.
PWD: /www/data-lst1/unixsoft/unixsoft/kaempfer/.public_html
Running in File Mode
Relative path: ./../../../../../../usr/man/man3c/accept.3c
Real path: /usr/share/man/man3c/accept.3c
Zurück
'\" te .\" Copyright (c) 1992, 2013, The X/Open Company Ltd. All rights reserved. .\" Portions Copyright (c) 2003, 2021, Oracle and/or its affiliates. .\" Oracle gratefully acknowledges The Open Group for permission to reproduce portions of its copyrighted documentation. Original documentation from The Open Group can be obtained online at http://www.opengroup.org/bookstore/. .\" The Institute of Electrical and Electronics Engineers and The Open Group, have given us permission to reprint portions of their documentation. In the following statement, the phrase "this text" refers to portions of the system documentation. Portions of this text are reprinted and reproduced in electronic form in the Sun OS Reference Manual, from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between these versions 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. This notice shall appear on any product containing this material. .TH accept 3C "2 Feb 2021" "Oracle Solaris 11.4" "Standard C Library Functions" .SH NAME accept, accept4 \- accept a new connection on a socket .SH SYNOPSIS .LP .nf #include <sys/socket.h> \fBint\fR \fBaccept\fR(\fBint\fR \fIsocket\fR, \fBstruct sockaddr *restrict\fR \fIaddress\fR, \fBsocklen_t *restrict\fR \fIaddress_len\fR); \fBint\fR \fBaccept4\fR(\fBint\fR \fIsocket\fR, \fBstruct sockaddr *restrict\fR \fIaddress\fR, \fBsocklen_t *restrict\fR \fIaddress_len\fR, \fBint\fR \fIflags\fR); .fi .SH DESCRIPTION .sp .LP The \fBaccept()\fR function extracts the first connection on the queue of pending connections, creates a new socket with the same socket type, protocol, and address family as the specified socket, and allocates a new file descriptor for that socket. .sp .LP The function takes the following arguments: .sp .ne 2 .mk .na \fB\fIsocket\fR\fR .ad .RS 15n .rt A socket created with \fBsocket\fR(3C), bound to an address with \fBbind\fR(3C), and in the \fBLISTEN\fR state after a successful call to \fBlisten\fR(3C). .RE .sp .ne 2 .mk .na \fB\fIaddress\fR\fR .ad .RS 15n .rt Either a null pointer, or a pointer to a \fBsockaddr\fR structure where the address of the connecting socket will be returned. .RE .sp .ne 2 .mk .na \fB\fIaddress_len\fR\fR .ad .RS 15n .rt Points to a \fBsocklen_t\fR which on input specifies the length of the supplied \fBsockaddr\fR structure, and on output specifies the length of the stored address. .RE .sp .LP If \fIaddress\fR is not a null pointer, the address of the peer for the accepted connection is stored in the \fBsockaddr\fR structure pointed to by \fIaddress\fR, and the length of this address is stored in the object pointed to by \fIaddress_len\fR. .sp .LP If the actual length of the address is greater than the length of the supplied \fBsockaddr\fR structure, the stored address will be truncated. .sp .LP If the protocol permits connections by unbound clients, and the peer is not bound, then the value stored in the object pointed to by \fIaddress\fR is unspecified. .sp .LP If the listen queue is empty of connection requests and O_NONBLOCK is not set on the file descriptor for the socket, \fBaccept()\fR and \fBaccept4()\fR will block until a connection is present. If the \fBlisten\fR(3C) queue is empty of connection requests and O_NONBLOCK is set on the file descriptor for the socket, \fBaccept()\fR and \fBaccept4()\fR will fail and set \fBerrno\fR to \fBEAGAIN\fR or \fBEWOULDBLOCK\fR. .sp .LP The accepted socket cannot itself accept more connections. The original socket remains open and can accept more connections. .sp .LP The \fBaccept4()\fR function behaves like \fBaccept()\fR but the accepting socket does not inherit NDELAY and NONBLOCKING from the original socket, instead it will take the settings from the flags argument: .sp .ne 2 .mk .na \fB\fBSOCK_NDELAY\fR\fR .ad .br .sp .6 .RS 4n As if O_NDELAY is set for the socket. .RE .sp .ne 2 .mk .na \fB\fBSOCK_NONBLOCK\fR\fR .ad .br .sp .6 .RS 4n As if O_NONBLOCK is set for the socket. .RE .sp .ne 2 .mk .na \fB\fBSOCK_NOSIGPIPE\fR\fR .ad .br .sp .6 .RS 4n No SIGPIPE will be sent on write when the remote connection was closed; instead EPIPE is returned. .RE .sp .ne 2 .mk .na \fB\fBSOCK_CLOEXEC\fR\fR .ad .br .sp .6 .RS 4n The socket will be closed on exec() or spawn(). .RE .sp .ne 2 .mk .na \fB\fBSOCK_CLOFORK\fR\fR .ad .br .sp .6 .RS 4n The socket will not be inherited by the child on fork() or spawn(). .RE .sp .LP If both SOCK_NDELAY and SOCK_NONBLOCK are set, the socket will behave as if only SOCK_NONBLOCK is set. .SH USAGE .sp .LP When a connection is available, \fBselect\fR(3C) will indicate that the file descriptor for the socket is ready for reading. .SH RETURN VALUES .sp .LP Upon successful completion, \fBaccept()\fR and \fBaccept4()\fR return the nonnegative file descriptor of the accepted socket. Otherwise, \(mi1 is returned and \fBerrno\fR is set to indicate the error. .SH ERRORS .sp .LP The \fBaccept()\fR and \fBaccept4()\fR functions will fail if: .sp .ne 2 .mk .na \fB\fBEAGAIN\fR\fR .ad .br .na \fB\fBEWOULDBLOCK\fR\fR .ad .RS 16n .rt O_NONBLOCK is set for the socket file descriptor and no connections are present to be accepted. .RE .sp .ne 2 .mk .na \fB\fBEBADF\fR\fR .ad .RS 16n .rt The \fIsocket\fR argument is not a valid file descriptor. .RE .sp .ne 2 .mk .na \fB\fBECONNABORTED\fR\fR .ad .RS 16n .rt A connection has been aborted. .RE .sp .ne 2 .mk .na \fB\fBEFAULT\fR\fR .ad .RS 16n .rt The \fIaddress\fR or \fIaddress_len\fR parameter can not be accessed or written. .RE .sp .ne 2 .mk .na \fB\fBEINTR\fR\fR .ad .RS 16n .rt The \fBaccept()\fR function was interrupted by a signal that was caught before a valid connection arrived. .RE .sp .ne 2 .mk .na \fB\fBEINVAL\fR\fR .ad .RS 16n .rt The \fIsocket\fR is not accepting connections. .RE .sp .ne 2 .mk .na \fB\fBEMFILE\fR\fR .ad .RS 16n .rt The per-process limit of file descriptors are already open in the calling process. .RE .sp .ne 2 .mk .na \fB\fBENFILE\fR\fR .ad .RS 16n .rt The maximum number of file descriptors in the system are already open. .RE .sp .ne 2 .mk .na \fB\fBENOTSOCK\fR\fR .ad .RS 16n .rt The \fIsocket\fR argument does not refer to a socket. .RE .sp .ne 2 .mk .na \fB\fBEOPNOTSUPP\fR\fR .ad .RS 16n .rt The socket type of the specified socket does not support accepting connections. .RE .sp .LP The \fBaccept()\fR and \fBaccept4()\fR functions may fail if: .sp .ne 2 .mk .na \fB\fBENOBUFS\fR\fR .ad .RS 11n .rt No buffer space is available. .RE .sp .ne 2 .mk .na \fB\fBENOMEM\fR\fR .ad .RS 11n .rt There is insufficient memory available to complete the operation. .RE .sp .ne 2 .mk .na \fB\fBENOSR\fR\fR .ad .RS 11n .rt There are insufficient STREAMS resources available to complete the operation. .RE .sp .ne 2 .mk .na \fB\fBEPROTO\fR\fR .ad .RS 11n .rt A protocol error has occurred; for example, the STREAMS protocol stack has not been initialized. .RE .SH ATTRIBUTES .sp .LP See \fBattributes\fR(7) for descriptions of the following attributes: .sp .TS tab( ) box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . ATTRIBUTE TYPE ATTRIBUTE VALUE _ Interface Stability Committed _ MT-Level Async-Signal-Safe _ Standard See \fBstandards\fR(7). .TE .sp .SH SEE ALSO .sp .LP \fBbind\fR(3C), \fBconnect\fR(3C), \fBlisten\fR(3C), \fBsocket\fR(3C), \fBattributes\fR(7), \fBstandards\fR(7) .SH HISTORY .sp .LP The \fBaccept()\fR function has been present since the initial release of Solaris. .sp .LP The \fBaccept4()\fR function was added to Oracle Solaris in the Solaris 11.4.0 release.