Rechercher une page de manuel
mknod
Langue: fr
Version: 23 juin 2004 (ubuntu - 01/11/07)
Section: 2 (Appels système)
NOM
mknod - Créer un noeud du système de fichiersSYNOPSIS
#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 nommé) appelé pathname, avec les attributs mode et dev.L'argument mode définit à la fois les permissions d'utilisation, et le type de noeud à créer. 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, S_IFIFO ou S_IFSOCK pour indiquer respectivement un fichier normal (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. 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 indiquer les numéros majeurs et mineurs du périphérique associé. Pour les autres types de noeuds, dev est ignoré.
Si pathname existe déjà, ou est un lien symbolique, l'appel échoue avec l'erreur EEXIST.
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 fichiers 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É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. (Voir aussi path_resolution(2).)
- EEXIST
- pathname existe déjà.
- EFAULT
- pathname pointe en-dehors de l'espace d'adressage accessible.
- EINVAL
- mode demande la création d'autre chose qu'un fichier normal, fichier spécial de périphérique, FIFO ou socket.
- ELOOP
- Trop de liens symboliques ont été rencontrés en parcourant pathname.
- 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.
- 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 noeud.
- ENOTDIR
- Un élément utilisé dans le chemin pathname n'est pas un répertoire.
- EPERM
- mode demande la création d'un noeud 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 noeuds du type demandé.
- EROFS
- pathname serait 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é ».Sous Linux mknod ne peut pas être utilisé pour créer des répertoires. Il faut créer les répertoires avec mkdir(2), et les FIFO avec mkfifo(2).
Il y a de nombreux problèmes avec le protocole sous-jacent à NFS, certains d'entre eux pouvant affecter mknod().
VOIR AUSSI
fcntl(2), mkdir(2), mknodat(2), mount(2), path_resolution(2), socket(2), stat(2), umask(2), unlink(2), mkfifo(3)TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par Alain Portal <aportal AT univ-montp2 DOT fr> jusqu'en 2006, et mise à disposition sur http://manpagesfr.free.fr/.Les mises à jour et corrections de la version présente dans Debian sont directement gérées par Julien Cristau <jcristau@debian.org> et l'équipe francophone de traduction de Debian.
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> ».
plus rapide que Windows dans beaucoup de situations, parce que le temps
de chargement ( disque ) d'un programme de 1 Mo est plus lent que celle
d'un programme de 3 à 50 Ko, et que les calculs processeur mettent moins
de temps que les accès disques. C'est pour cette raison notemment que
les PC portables sont plus rapides. Ils ont en effet un disque de
dimention plus petite. De plus, le système n'a plus besoin de SWAP
(Cache disque), à cause des petites tailles. De ce fait, on evite un
fichier de 250 Mo sur le disque ainsi que des vas et viens réguliers de
la tete, que Windows fait pour lire une partie du programme et pour
mettre cette partie dans le fichier SWAP, avant d'y accéder à nouveau
pour la relire comme si c'etait de la mémoire RAM. Les caches disques
sont ridicules de nos jours, avec 256 Mo de RAM, Windows RAM encore,
alors que MultideskOS tourne sans rien dire a partir de 16 Mo, 8 Mo
étant le minimum. Nous avons testé, MultideskOS est aussi rapide sur un
486 - 66 Mhz que Windows sur un Athlon 750 Mhz. Sur ce mme Athlon,
MultideskOS démarre entre 2 et 5 secondes, alors que Windows +- en 30
secondes.
-- Jayce - Vous n'y connaissez rien au matos. --
Contenus ©2006-2008 Benjamin Poulain
Design ©2006-2008 Maxime Vantorre