Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       mknod - Creer un noeud du systeme 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 fonctionnalites pour la glibc (consultez
   feature_test_macros(7)) :

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

DESCRIPTION

       mknod()  cree un noeud du systeme de fichiers (fichier, fichier special
       de peripherique ou tube nomme) appele pathname, avec les attributs mode
       et dev.

       L'argument  mode definit a la fois les permissions d'utilisation, et le
       type de noeud a creer. C'est une combinaison  par  OU  binaire  << | >>
       entre  l'un  des  types de noeuds ci-dessous et les permissions d'acces
       pour le nouveau noeud.

       Les  permissions  sont  modifiees  par  le  umask  du  processus :  les
       permissions effectivement ecrites sont (mode & ~umask).

       Le type de noeud doit etre l'un des suivants S_IFREG, S_IFCHR, S_IFBLK,
       S_IFIFO ou S_IFSOCK pour indiquer respectivement  un  fichier  regulier
       (vide  a  la  creation),  un fichier special mode caractere, un fichier
       special mode bloc, un tube nomme (FIFO) ou une socket du domaine  Unix.
       Un type de fichier egal a 0 est equivalent a S_IFREG.

       Si  le noeud est de type S_IFCHR or S_IFBLK alors dev doit indiquer les
       numeros majeurs et mineurs du  peripherique  associe  (makedev(3)  peut
       etre  utile pour construire la valeur de dev). Pour les autres types de
       noeuds, dev est ignore.

       Si pathname existe deja, ou est un lien symbolique, l'appel echoue avec
       l'erreur EEXIST.

       Le  noeud  nouvellement  cree  aura pour proprietaire l'UID effectif du
       processus. Si le repertoire contenant ce noeud a son bit Set-GID  a  1,
       ou  si  le  systeme  de  fichiers est monte avec une semantique BSD, le
       nouveau noeud heritera de l'appartenance au groupe de son parent. Sinon
       il appartiendra au groupe effectif du processus.

VALEUR RENVOY'EE

       mknod()  renvoie  0  s'il  reussit, ou -1 s'il echoue, auquel cas errno
       contient le code d'erreur.

ERREURS

       EACCES Le repertoire parent n'autorise pas l'ecriture au processus,  ou
              l'un  des repertoires de pathname n'autorise pas la consultation
              de son contenu. (Consultez aussi path_resolution(7).)

       EEXIST pathname existe deja. Cela inclut le cas ou pathname est un lien
              symbolique, pouvant pointer nulle part.

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

       EINVAL mode  demande  la creation d'autre chose qu'un fichier regulier,
              fichier special de peripherique, FIFO ou socket.

       ELOOP  Trop de liens  symboliques  ont  ete  rencontres  en  parcourant
              pathname.

       ENAMETOOLONG
              pathname est trop long.

       ENOENT Un  des  repertoires  du chemin d'acces pathname n'existe pas ou
              est un lien symbolique pointant nulle part.

       ENOMEM Pas assez de memoire pour le noyau.

       ENOSPC Le peripherique contenant pathname n'a pas assez de  place  pour
              le nouveau noeud.

       ENOTDIR
              Un element du chemin d'acces pathname n'est pas un repertoire.

       EPERM  mode   demande  la  creation  d'un  noeud  autre  qu'un  fichier
              regulier, une FIFO (tube nomme) ou une socket du  domaine  Unix,
              alors  que  le  processus  appelant  n'est  pas privilegie (sous
              Linux : n'a pas la capacite CAP_MKNOD). Cette erreur se  produit
              egalement  si  le  systeme  de  fichiers  contenant  pathname ne
              supporte pas les noeuds du type demande.

       EROFS  pathname est place sur un systeme de fichiers en lecture seule.

CONFORMIT'E

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

NOTES

       POSIX.1-2001 dit : << Le seul usage portable de mknod() est  reserve  a
       la  creation de fichiers speciaux FIFO. Si le mode n'est pas S_IFIFO ou
       si  dev  n'est  pas  0,  alors   le   comportement   de   mknod()   est
       indetermine >>.  Toutefois,  aujourd'hui, on ne devrait jamais utiliser
       mknod()  pour  cela ;  on  devrait  utiliser  mkfifo(3),  une  fonction
       specialement concue pour cela.

       Sous  Linux  mknod ne peut pas etre utilise pour creer des repertoires.
       Il faut creer les repertoires avec mkdir(2).

       Il y a de nombreux problemes  avec  le  protocole  sous-jacent  a  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.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/>.

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