Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       mknod - Créer un nœud du système de fichiers

SYNOPSIS

       #include <sys/types.h>
       #include <sys/stat.h>
       #include <fcntl.h>
       #include <unistd.h>

       int mknod(const char *pathname, mode_t mode, dev_t dev);

   Exigences  de  macros  de  test de fonctionnalités pour la glibc (consultez
   feature_test_macros(7)) :

       mknod() :
           _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

DESCRIPTION

       mknod()  crée  un nœud du système de fichiers (fichier, fichier spécial
       de périphérique ou tube nommé) appelé pathname, avec les attributs mode
       et dev.

       L'argument  mode définit à la fois les permissions d'utilisation, et le
       type de nœud à créer. C'est une combinaison par OU binaire « | »  entre
       l'un  des  types de nœuds ci‐dessous et les permissions d'accès pour le
       nouveau nœud.

       Les  permissions  sont  modifiées  par  le  umask  du  processus :  les
       permissions effectivement écrites sont (mode & ~umask).

       Le  type de nœud doit être l'un des suivants S_IFREG, S_IFCHR, S_IFBLK,
       S_IFIFO ou S_IFSOCK pour indiquer respectivement  un  fichier  régulier
       (vide  à  la  création),  un fichier spécial mode caractère, un fichier
       spécial mode bloc, un tube nommé (FIFO) ou une socket du domaine  UNIX.
       Un type de fichier égal à 0 est équivalent à S_IFREG.

       Si  le  nœud est de type S_IFCHR or S_IFBLK alors dev doit indiquer les
       numéros majeurs et mineurs du  périphérique  associé  (makedev(3)  peut
       être  utile pour construire la valeur de dev). Pour les autres types de
       nœuds, dev est ignoré.

       Si pathname existe déjà, ou est un lien symbolique, l'appel échoue avec
       l'erreur EEXIST.

       Le  nœud  nouvellement  créé  aura  pour propriétaire l'UID effectif du
       processus. Si le répertoire contenant ce nœud a son bit Set-GID à 1, ou
       si le système de fichiers est monté avec une sémantique BSD, le nouveau
       nœud héritera de l'appartenance au  groupe  de  son  parent.  Sinon  il
       appartiendra au groupe effectif du processus.

VALEUR RENVOYÉE

       mknod()  renvoie  0  s'il  réussit, ou -1 s'il échoue, auquel cas errno
       contient le code d'erreur.

ERREURS

       EACCES Le répertoire parent n'autorise pas l'écriture au processus,  ou
              l'un  des répertoires de pathname n'autorise pas la consultation
              de son contenu. (Consultez aussi path_resolution(7).)

       EEXIST pathname existe déjà. Cela inclut le cas où pathname est un lien
              symbolique, pouvant pointer nulle part.

       EFAULT pathname pointe en‐dehors de l'espace d'adressage accessible.

       EINVAL mode  demande  la création d'autre chose qu'un fichier régulier,
              fichier spécial de périphérique, FIFO ou socket.

       ELOOP  Trop de liens  symboliques  ont  été  rencontrés  en  parcourant
              pathname.

       ENAMETOOLONG
              pathname est trop long.

       ENOENT Un  des  répertoires  du chemin d'accès pathname n'existe pas ou
              est un lien symbolique pointant nulle part.

       ENOMEM Pas assez de mémoire pour le noyau.

       ENOSPC Le périphérique contenant pathname n'a pas assez de  place  pour
              le nouveau nœud.

       ENOTDIR
              Un élément du chemin d'accès pathname n'est pas un répertoire.

       EPERM  mode demande la création d'un nœud autre qu'un fichier régulier,
              une FIFO (tube nommé) ou une socket du domaine UNIX,  alors  que
              le processus appelant n'est pas privilégié (sous Linux : n'a pas
              la capacité CAP_MKNOD). Cette erreur se produit également si  le
              système de fichiers contenant pathname ne supporte pas les nœuds
              du type demandé.

       EROFS  pathname est placé sur un système de fichiers en lecture seule.

CONFORMITÉ

       SVr4, BSD 4.4, POSIX.1-2001 (mais voir plus loin).

NOTES

       POSIX.1-2001 dit : « Le seul usage portable de mknod() est réservé à la
       création  de fichiers spéciaux FIFO. Si le mode n'est pas S_IFIFO ou si
       dev n'est pas 0, alors le comportement de  mknod()  est  indéterminé ».
       Toutefois,  aujourd'hui,  on  ne  devrait  jamais utiliser mknod() pour
       cela ; on devrait utiliser mkfifo(3), une fonction spécialement  conçue
       pour cela.

       Sous  Linux  mknod ne peut pas être utilisé pour créer des répertoires.
       Il faut créer les répertoires avec mkdir(2).

       Il y a de nombreux problèmes  avec  le  protocole  sous‐jacent  à  NFS,
       certains d'entre eux pouvant affecter mknod().

VOIR AUSSI

       chmod(2),   chown(2),   fcntl(2),   mkdir(2),   mknodat(2),   mount(2),
       socket(2),  stat(2),  umask(2),   unlink(2),   makedev(3),   mkfifo(3),
       path_resolution(7)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.32 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/>.

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/> (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/>   (2003-2006).   Julien
       Cristau 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> ».