shutdown - Terminer une communication en full-duplex
Bibliothèque C standard (
libc,
-lc)
#include <sys/socket.h>
int shutdown(int sockfd, int how);
La fonction
shutdown() termine tout ou partie d'une connexion full-duplex
sur la socket
sockfd. Si
how vaut
SHUT_RD, la
réception est désactivée. Si
how vaut
SHUT_WR, l'émission est désactivée. Si
how
vaut
SHUT_RDWR, l'émission et la réception sont
désactivées.
En cas de succès, zéro est renvoyé. En cas d'erreur,
-1 est renvoyé et
errno est définie pour
préciser l'erreur.
- EBADF
-
sockfd n'est pas un descripteur de fichier
valable.
- EINVAL
- Une valeur incorrecte a été indiquée
dans how (mais consultez BOGUES).
- ENOTCONN
- La socket indiquée n'est pas connectée.
- ENOTSOCK
- Le descripteur de fichier sockfd ne fait pas
référence à un socket.
POSIX.1-2001, POSIX.1-2008, 4.4BSD (
shutdown() est apparu dans 4.2BSD).
Les constantes
SHUT_RD,
SHUT_WR,
SHUT_RDWR ont pour valeur
0, 1, et 2 respectivement, et sont définies dans
<sys/socket.h> depuis la glibc-2.1.91.
Les vérifications de validité pour
how sont faites dans le
code spécifique au domaine et, avant Linux 3.7, tous les domaines ne
réalisaient pas ces vérifications. Tout particulièrement,
les sockets du domaine UNIX, ignoraient simplement les valeurs incorrectes. Ce
problème a été corrigé pour les sockets du domaine
UNIX dans Linux 3.7.
close(2),
connect(2),
socket(2),
socket(7)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]> et
Jean-Philippe MENGUAL <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]