Provided by: manpages-fr-dev_4.15.0-9_all bug

NOM

       getsockopt, setsockopt - Lire et écrire les options d'une socket

SYNOPSIS

       #include <sys/socket.h>

       int getsockopt(int sockfd, int level, int optname,
                      void *restrict optval, socklen_t *restrict optlen);
       int setsockopt(int sockfd, int level, int optname,
                      const void *optval, socklen_t optlen);

DESCRIPTION

       getsockopt()  et setsockopt() manipulent les options associées à la socket à laquelle fait
       référence le descripteur de fichier sockfd. Ces options peuvent exister aux divers niveaux
       de protocole, et sont toujours présentes au niveau socket le plus élevé.

       Quand  on manipule une option d'une socket, il faut préciser le niveau où elle s'applique,
       et le nom de l'option. Au niveau de l'API des sockets, level prend la  valeur  SOL_SOCKET.
       Pour  tous  les  autres  niveaux,  il  faut  fournir le numéro de protocole approprié. Par
       exemple, pour une option interprétée par le protocole TCP,  level  prendra  le  numéro  du
       protocole TCP. Consultez getprotoent(3).

       Les   paramètres  optval  et  optlen  sont  utilisés  pour  déterminer  les  options  pour
       setsockopt(). Pour getsockopt ils identifient un tampon dans lequel la valeur de  l'option
       désirée  doit  être renvoyée. Pour getsockopt, optlen est un paramètre résultat, contenant
       initialement la taille du tampon pointé par optval, et rempli en retour pour  indiquer  la
       taille effective des valeurs renvoyées. Si aucune option n'est fournie ou renvoyée, optval
       peut être NULL.

       optname et toute autre option sont passés sans interprétation au protocole approprié, pour
       qu'il  l'interprète lui‐même. Le fichier d'en‐tête <sys/socket.h> contient les définitions
       pour le niveau socket. Les options pour les autres niveaux  de  protocole  peuvent  varier
       tant  en  format  qu'en  nom,  consultez  les  pages  de  manuel de la section 7 pour plus
       d'informations.

       La plupart des options au niveau socket utilisent un paramètre de type  int  pour  optval.
       Pour setsockopt(), un paramètre non nul valide une option booléenne, et zéro l'invalide.

       Pour   une   description   des  options  disponibles  consultez  socket(7)  et  les  pages
       correspondant au protocole concerné.

VALEUR RENVOYÉE

       En cas de succès, 0 est renvoyé pour les options standards. En cas d'échec, -1 est renvoyé
       et errno est positionné pour indiquer l'erreur.

       Netfilter  permet au programmeur de définir des options personnalisées pour un socket avec
       des gestionnaires associés ; pour de telles options, le  code  de  retour  est  la  valeur
       renvoyée par le gestionnaire en cas de succès.

ERREURS

       EBADF  sockfd n'est pas un descripteur de fichier valable.

       EFAULT optval pointe en dehors de l'espace d'adressage accessible. Avec getsockopt(), ceci
              peut s'appliquer également à optlen.

       EINVAL optlen non valable pour setsockopt(). Dans certains cas cette erreur peut aussi  se
              produire  pour  une  valeur  non  valable  de  optval  (par  exemple, pour l'option
              IP_ADD_MEMBERSHIP décrite dans ip(7)).

       ENOPROTOOPT
              L'option est inconnue pour ce protocole.

       ENOTSOCK
              Le descripteur de fichier sockfd ne fait pas référence à un socket.

CONFORMITÉ

       POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD (ces appels système sont apparus pour la première
       fis dans 4.2BSD).

NOTES

       Pour plus de détails sur le type socklen_t, voir accept(2).

BOGUES

       Plusieurs  options  sur  les  sockets  devraient  être  gérées à un niveau plus bas par le
       système.

VOIR AUSSI

       ioctl(2), socket(2), getprotoent(3), protocols(5), ip(7),  packet(7),  socket(7),  tcp(7),
       udp(7), unix(7)

COLOPHON

       Cette  page  fait partie de la publication 5.13 du projet man-pages Linux. Une description
       du projet et des instructions pour signaler des anomalies et la dernière version de  cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La  traduction  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier  <barbier@debian.org>,  David  Prévot   <david@tilapin.org>,   Cédric   Boutillier
       <cedric.boutillier@gmail.com>,  Frédéric  Hantrais  <fhantrais@gmail.com> et Jean-Philippe
       MENGUAL <jpmengual@debian.org>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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 à ⟨debian-l10n-french@lists.debian.org⟩.