NOM¶
setns - Réassocier un thread avec un espace de noms
SYNOPSIS¶
#define _GNU_SOURCE /* Consultez feature_test_macros(7) */
#include <sched.h>
int setns(int fd, int nstype);
DESCRIPTION¶
Étant donné un descripteur de fichiers faisant référence
à un espace de nom, réassocier le thread appelant à cet espace
de nom.
L'argument
fd est un descripteur de fichier faisant référence
à un des espaces de noms présents sous la forme d'entrées dans
un répertoire
/proc/[pid]/ns/. Consultez
proc(5) pour plus
d'informations sur
/proc/[pid]/ns. Le thread appelant sera
réassocié avec l'espace de noms correspondant, si les contraintes
imposées par l'argument
nstype sont satisfaites.
L'argument
nstype indique les types d'espaces de noms auxquels le thread
appelant peut être réassocié. Cet argument peut prendre une des
valeurs suivantes :
- 0
- fd peut faire référence à n'importe
quel type d'espace de noms.
- CLONE_NEWIPC
- fd doit faire référence à un espace
de noms IPC.
- CLONE_NEWNET
- fd doit faire référence à un espace
de noms réseau.
- CLONE_NEWUTS
- fd doit faire référence à un espace
de noms UTS.
Définir la valeur de
nstype à zéro est suffisant si le
thread appelant connaît (ou n'a pas besoin de connaître) le type
d'espace de noms auquel
fd fait référence. Définir
nstype à une valeur non nulle est utile si l'appelant ne
connaît pas le type de l'espace de noms référencé par
fd et veut s'assurer que l'espace de noms est du type souhaité.
(L'appelant pourrait ne pas connaître le type de l'espace de noms auquel
fd fait référence si le descripteur de fichiers a
été ouvert par un autre processus et qu'il a, par exemple,
été passé à l'appelant par une socket UNIX.)
VALEUR RENVOYÉE¶
S'il réussit,
setns() renvoie zéro, sinon il renvoie -1 et
remplit
errno avec le code d'erreur.
ERREURS¶
- EBADF
- fd n'est pas un descripteur de fichier valable.
- EINVAL
- fd fait référence à un espace de noms
dont le type ne correspond pas à celui indiqué dans
nstype, ou bien un problème s'est produit lors de la
réassociation du thread avec l'espace de noms indiqué.
- ENOMEM
- Impossible d'allouer suffisamment de mémoire pour
changer l'espace de noms indiqué.
- EPERM
- Le processus appelant n'avait pas les privilèges
(CAP_SYS_ADMIN) pour effectuer cette opération.
VERSIONS¶
L'appel système
setns() est apparu dans Linux 3.0 ; son support
a été ajouté dans la version 2.14 de la glibc.
L'appel système
setns() est spécifique à Linux.
NOTES¶
Certains des attributs qui peuvent être partagés avec un nouveau
thread créé avec
clone(2) ne peuvent pas être
modifiés en utilisant
setns().
BOGUES¶
Les espaces de noms PID et de montage ne sont pour le moment pas
gérés. (Consultez la description de
CLONE_NEWPID et de
CLONE_NEWNS dans
clone(2).)
VOIR AUSSI¶
clone(2),
fork(2),
vfork(2),
proc(5),
unix(7)
COLOPHON¶
Cette page fait partie de la publication 3.44 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/>.
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> ».