Provided by: manpages-fr-dev_3.57d1p1-1_all bug

NOM

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

SYNOPSIS

       #include <sys/types.h>          /* Consultez NOTES */
       #include <sys/socket.h>

       int getsockopt(int sockfd, int level, int optname,
                      void *optval, socklen_t *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

       S'il réussit, cet appel système renvoie 0. S'il échoue, il renvoie -1 et remplit errno  en
       conséquence.

ERREURS

       EBADF     sockfd n'est pas un descripteur 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 paramètre sockfd est un fichier, pas une socket.

CONFORMITÉ

       SVr4, BSD 4.4 (ces appels système sont apparus dans BSD 4.2), POSIX.1-2001.

NOTES

       POSIX.1-2001 ne requiert pas l'inclusion  de  <sys/types.h>,  et  cet  en‐tête  n'est  pas
       nécessaire  sous  Linux.  Cependant,  il  doit  être inclus sous certaines implémentations
       historiques (BSD), et les applications portables devraient probablement l'utiliser.

       Le paramètre optlen de getsockopt() et setsockopt() est en fait un int [*]  (et  c'est  ce
       qu'utilisent  BSD 4.x,  libc4 et libc5). Une certaine confusion POSIX a donné le socklen_t
       actuel, également utilisé par glibc. Pour plus de détails consultez 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),  socket(7),  tcp(7), udp(7),
       unix(7)

COLOPHON

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

TRADUCTION

       Depuis   2010,   cette   traduction   est   maintenue   à   l'aide   de    l'outil    po4a
       <http://po4a.alioth.debian.org/>  par l'équipe de traduction francophone au sein du projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe   Blaess   <http://www.blaess.fr/christophe/>   (1996-2003),    Alain    Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Julien  Cristau  et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>   ou   par   un  rapport  de  bogue  sur  le  paquet
       manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document  en  utilisant  la
       commande « man -L C <section> <page_de_man> ».