NOM¶
bindresvport - Affecter une socket à un port IP privilégié
SYNOPSIS¶
#include <sys/types.h>
#include <netinet/in.h>
int bindresvport(int sockfd, struct sockaddr_in *sin);
DESCRIPTION¶
bindresvport() est utilisée pour affecter un descripteur de socket
à un port IP privilégié anonyme, c'est-à-dire un
numéro de port arbitrairement sélectionné dans
l'intervalle [512, 1023].
Si le
bind(2) réalisé par
bindresvport()
réussi et si
sin est non NULL, alors
sin->sin_port
renvoie le numéro de port alloué.
sin peut être NULL, dans ce cas
sin->sin_family est
simplement considéré comme
AF_INET. Cependant, dans ce
cas,
bindresvport() ne peut renvoyer le port actuellement alloué
(cette information peut être obtenu ultérieurement avec
getsockname(2)).
VALEUR RENVOYÉE¶
bindresvport() renvoie 0 en cas de succès. En cas d'erreur, -1 est
renvoyé et
errno est définie.
ERREURS¶
bindresvport() peut échouer pour les mêmes raisons que
bind(2). De plus, les erreurs suivantes peuvent se produire :
- EACCES
- L'appelant n'a pas les privilèges suffisants (la capacité
CAP_NET_BIND_SERVICE est nécessaire).
- EADDRINUSE
- Tous les ports privilégiés sont utilisés.
- EAFNOSUPPORT (EPFNOSUPPORT dans la glibc 2.7 et les
versions précédentes)
- sin est non NULL et sin->sin_family n'est pas
AF_INET.
ATTRIBUTS¶
Multithreading (voir pthreads(7))¶
Avant glibc 2.17, la fonction
bindresvport() utilisait une variable
statique non protégée, et n’était donc pas
sûre dans un contexte multithread.
Depuis glibc 2.17, la fonction
bindresvport() utilise un verrou de
protection de variable statique, donc elle est sûre dans un contexte
multithread.
Absent de POSIX.1-2001. Présent sur les systèmes BSD, Solaris et
beaucoup d'autres.
NOTES¶
Contrairement à d'autres implémentations de
bindresvport(),
l'implémentation de la glibc ignore toutes les valeurs que l'appelant
passe à
sin->sin_port.
VOIR AUSSI¶
bind(2),
getsockname(2)
COLOPHON¶
Cette page fait partie de la publication 3.65 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). Florentin Duneau 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> ».