\item[\errcode{EBADF}] il file descriptor non è valido.
\item[\errcode{EINVAL}] il socket ha già un indirizzo assegnato.
\item[\errcode{ENOTSOCK}] il file descriptor non è associato ad un socket.
- \item[\errcode{EACCESS}] si è cercato di usare una porta riservata senza
+ \item[\errcode{EACCES}] si è cercato di usare una porta riservata senza
sufficienti privilegi.
\end{errlist}}
\end{prototype}
\item[\errcode{EAGAIN}] non ci sono più porte locali libere.
\item[\errcode{EAFNOSUPPORT}] l'indirizzo non ha una famiglia di indirizzi
corretta nel relativo campo.
- \item[\errcode{EACCESS, EPERM}] si è tentato di eseguire una connessione ad
- un indirizzo broadcast senza che il socket fosse stato abilitato per il
- broadcast.
+ \item[\errcode{EACCES}, \errcode{EPERM}] si è tentato di eseguire una
+ connessione ad un indirizzo broadcast senza che il socket fosse stato
+ abilitato per il broadcast.
\end{errlist}
altri errori possibili sono: \errval{EFAULT}, \errval{EBADF},
\errval{ENOTSOCK}, \errval{EISCONN} e \errval{EADDRINUSE}.}
viene messo in attesa. Il prototipo della funzione è il seguente:
\begin{prototype}{sys/socket.h}
{int accept(int sockfd, struct sockaddr *addr, socklen\_t *addrlen)}
- Estrae la prima connessione relativa al socket \var{sockfd}
- in attesa sulla coda delle connessioni complete, che associa ad nuovo socket
- con le stesse caratteristiche di \var{sockfd} (restituito dalla funzione
- stessa). Il socket originale non viene toccato. Nella struttura
- \var{addr} e nella variabile \var{addrlen} vengono restituiti
- indirizzo e relativa lunghezza del client che si è connesso.
+ Accetta una connessione sul socket specificato.
+
\bodydesc{La funzione restituisce un numero di socket descriptor positivo in
caso di successo e -1 in caso di errore, nel qual caso la variabile
\var{errno} viene impostata ai seguenti valori:
come non bloccante (vedi \secref{sec:file_noblocking}), e non ci sono
connessioni in attesa di essere accettate.
\item[\errcode{EPERM}] Le regole del firewall non consentono la connessione.
- \item[\errcode{ENOBUFS, ENOMEM}] questo spesso significa che l'allocazione
- della memoria è limitata dai limiti sui buffer dei socket, non dalla
- memoria di sistema.
+ \item[\errcode{ENOBUFS}, \errcode{ENOMEM}] questo spesso significa che
+ l'allocazione della memoria è limitata dai limiti sui buffer dei socket,
+ non dalla memoria di sistema.
\end{errlist}
Inoltre possono essere restituiti gli errori di rete relativi al nuovo
socket come: \errval{EMFILE}, \errval{EINVAL}, \errval{ENOSR},
\errval{ERESTARTSYS}.}
\end{prototype}
+Estrae la prima connessione relativa al socket \var{sockfd} in attesa sulla
+coda delle connessioni complete, che associa ad nuovo socket con le stesse
+caratteristiche di \var{sockfd} (restituito dalla funzione stessa). Il socket
+originale non viene toccato. Nella struttura \var{addr} e nella variabile
+\var{addrlen} vengono restituiti indirizzo e relativa lunghezza del client che
+si è connesso.
+
La funzione può essere usata solo con socket che supportino la connessione
(cioè di tipo \const{SOCK\_STREAM}, \const{SOCK\_SEQPACKET} o
\const{SOCK\_RDM}). Per alcuni protocolli che richiedono una conferma