Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
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)