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> ».