| mknod | |||
Nommknod - 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); Descriptionmknod 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 appartiendra au groupe effectif du processus. Valeur Renvoyéemknod renvoie 0 s'il réussit, ou -1 s'il échoue, auquel cas errno contient le code d'erreur.Erreurs
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.Boguesmknod ne peut pas être utilisé pour créer des répertoires ou des sockets, et ne peut être 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 Aussiread(2) , write(2) fcntl(2) , close(2) , unlink(2) , open(2) , mkdir(2) , stat(2) , umask(2) , mount(2) , socket(2) , fopen(3) .
TraductionChristophe Blaess, 1997.
|