SETNS(2)

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.

CONFORMITÉ
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.40 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

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

Veuillez signaler toute erreur de traduction en écrivant à <perkamon-fr@traduc.org>.

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