Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       sockatmark  -  Determiner  si  la socket a atteint la marque de donnees
       hors-bande

SYNOPSIS

       #include <sys/socket.h>

       int sockatmark(int sockfd);

   Exigences de macros de test de fonctionnalites  pour  la  glibc  (consultez
   feature_test_macros(7)) :

       sockatmark() : _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600

DESCRIPTION

       sockatmark()  renvoie  une  valeur  indiquant  si  oui ou non la socket
       referencee par le descripteur de fichier sockfd a atteint une marque de
       donnees  hors-bande.  Si  la  socket  a  atteint la marque, la fonction
       renvoie 1, sinon elle renvoie 0. Cette  fonction  ne  supprime  pas  la
       marque de donnees hors-bande.

VALEUR RENVOY'EE

       Un  appel  reussit  a  sockatmark() renvoie 1 si la socket a atteint la
       marque de donnees hors-bande, ou  0  dans  le  cas  contraire.  En  cas
       d'erreur, elle renvoie -1 et ecrit errno en consequence.

ERREURS

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

       EINVAL sockfd   n'est   pas   un  descripteur  de  fichier  sur  lequel
              sockatmark() peut s'appliquer.

VERSIONS

       sockatmark() a ete ajoutee a la glibc dans la version 2.2.4.

CONFORMIT'E

       POSIX.1-2001.

NOTES

       Si sockatmark() renvoie 1, les donnees hors-bande peuvent etre lues  en
       utilisant l'attribut MSG_OOB de recv(2).

       Les  donnees  hors-bande ne sont supportees que par certains protocoles
       de socket de flux.

       sockatmark() peut etre appelee de maniere sure par un gestionnaire pour
       le signal SIGURG.

       sockatmark()   est   implementee   en  utilisant  l'operation  ioctl(2)
       SIOCATMARK.

BOGUES

       Avant la glibc 2.4, sockatmark() ne fonctionnait pas.

EXEMPLE

       Le code suivant peut etre utilise apres la reception d'un signal SIGURG
       pour  lire  (et  abandonner)  toutes  les  donnees jusqu'a la marque de
       donnees hors-bande, puis lit l'octet de donnee a la marque :

           char buf[BUF_LEN];
           char oobdata;
           int atmark, s;

           for (;;) {
               atmark = sockatmark(sockfd);
               if (atmark == -1) {
                   perror("sockatmark");
                   break;
               }

               if (atmark)
                   break;

               s = read(sockfd, buf, BUF_LEN) <= 0);
               if (s == -1)
                   perror("read");
               if (s <= 0)
                   break;
           }

           if (atmark == 1) {
               if (recv(sockfd, &oobdata, 1, MSG_OOB) == -1) {
                   perror("recv");
                   ...
               }
           }

VOIR AUSSI

       fcntl(2), recv(2), send(2), tcp(7)

COLOPHON

       Cette page fait partie de  la  publication  3.27  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

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

       Alain Portal <URL:http://manpagesfr.free.fr/> (2006).  Nicolas Francois
       et l'equipe francophone de traduction de Debian (2006-2009).

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

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

Linux                           3 decembre 2008                  SOCKATMARK(3)