MKNOD(2)           Manuel du programmeur Linux           MKNOD(2)


NOM
       mknod - Créer un noeud du système de fichier.

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);

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

       mode  définit  à la fois les permissions d'utilisation, et
       le type de noeud à creer. C'est  une  combinaison  par  OU
       binaire ( | ) entre l'un des types de noeuds ci-dessous et
       les permissions d'accès pour le nouveau noeud.

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

       Le type de noeud doit  être  l'un  des  suivants  S_IFREG,
       S_IFCHR,  S_IFBLK  et S_IFIFO pour indiquer respectivement
       un fichier normal (vide à la creation), un fichier spécial
       mode  caractère,  un fichier spécial mode bloc, ou un tube
       nommé (FIFO).  On peut également utiliser 0 pour créer  un
       fichier normal.

       Si  le noeud est de type S_IFCHR or S_IFBLK alors dev doit
       spécifier les numéros majeurs et mineurs  du  périphérique
       associé,  pour les autres types de noeuds, dev est ignoré.

       Le noeud nouvellement créé aura  pour  propriétaire  l'UID
       effectif du processus. Si le répertoire contenant ce noeud
       a son bit Set-GID à 1, ou si le  système  de  fichier  est
       monté  avec  une sémantique BSD, le nouveau noeud héritera
       de l'appartenance au groupe de son parent. Sinon il appar­
       tiendra 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
       EPERM  mode demande la création  d'un  noeud  autre  qu'un
              tube  nommé,  alors que le processus appelant n'est
              pas le Super-User. Cette erreur se  produit  égale­
              ment si le système de fichier contenant pathname ne
              supporte pas les noeuds du type demandé.




Linux                    10 Décembre 1997                       1





MKNOD(2)           Manuel du programmeur Linux           MKNOD(2)


       EINVAL mode  demande  la  création  d'autre  chose   qu'un
              fichier  normal, fichier spécial de périphérique ou
              tube nommé.

       EEXIST pathname existe déjà

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

       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.

       ENAMETOOLONG
              pathname trop long.

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

       ENOTDIR
              Un  élément  utilise  dans le chemin pathname n'est
              pas un répertoire.

       ENOMEM Pas assez de mémoire pour le noyau.

       EROFS  pathname serait placé sur un système de fichier  en
              lecture seule.

       ELOOP  pathname   contient  une  référence  circulaire  (à
              travers un lien symbolique).

       ENOSPC Le périphérique contenant pathname n'a pas assez de
              place  pour  le nouveau noeud. Cette erreur se pro­
              duit également si le quota de disque de  l'utilisa­
              teur est depassé.

CONFORMITÉ
       SVr4 (mais l'appel y nécessite des privilèges, alors qu'il
       n'y en a pas besoin dans POSIX), BSD 4.4. La version Linux
       diffère de celle de SVr4 en ceci qu'elle n'a pas besoin de
       privilèges root pour créer des tubes, et qu'elle ne décrit
       pas les erreurs EMULTIHOP, ENOLINK, et EINTR.

BUGS
       mknod  ne peut pas être utilisé pour créer des répertoires
       ou des  sockets,  et  ne  peut  etre  appelé  que  par  le
       Super-User pour créer des fichiers normaux.

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

VOIR AUSSI
       read(2), write(2) fcntl(2), close(2), unlink(2),  open(2),
       mkdir(2),    stat(2),   umask(2),   mount(2),   socket(2),



Linux                    10 Décembre 1997                       2





MKNOD(2)           Manuel du programmeur Linux           MKNOD(2)


       fopen(3).


TRADUCTION
       Christophe Blaess, 1997.




















































Linux                    10 Décembre 1997                       3