1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
.\" Hey Emacs! This file is -*- nroff -*- source.
.\"
.\" This manpage is Copyright (C) 1992 Drew Eckhardt;
.\" 1993 Michael Haardt
.\" 1993,1994 Ian Jackson.
.\" You may distribute it under the terms of the GNU General
.\" Public Licence. It comes with NO WARRANTY.
.\"
.\"
.\" Traduction 10/10/1996 Christophe BLAESS (ccb@club-internet.fr)
.\" Mise a Jour 8/04/97
.TH MKNOD 2 "8 Avril 1997" "Linux" "Manuel du programmeur Linux"
.SH NOM
mknod \- Creer un noeud du systeme de fichier.
.SH SYNOPSIS
.nf
.B #include <sys/types.h>
.B #include <sys/stat.h>
.B #include <fcntl.h>
.B #include <unistd.h>
.sp
.BI "int mknod(const char *" pathname ", mode_t " mode ", dev_t " dev );
.fi
.SH DESCRIPTION
.B mknod
cree un noeud du systeme de fichiers (fichier, fichier special de peripherique ou
tube) appele
.IR pathname ", avec les attributs " mode " et " dev .
.I mode
definit a la fois les permissions d'utilisation, et le type de noeud
a creer. C'est une combinaison par
.I 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
.BR umask
du processus : les permissions effectivement ecrites sont
.BR "(mode & ~umask)" .
Le type de noeud doit etre l'un des suivants
.BR S_IFREG ", " S_IFCHR ", " S_IFBLK " et " S_IFIFO
pour indiquer respectivement un fichier normal (vide a la creation),
un fichier special mode caractere, un fichier special mode bloc,
ou un tube nomme (FIFO).
On peut egalement utiliser 0 pour creer un fichier normal.
Si le noeud est de type
.BR S_IFCHR " or " S_IFBLK
alors
.I dev
doit specifier les numeros majeurs et mineurs du peripherique
associe, pour les autres types de noeuds,
.I dev
est ignore.
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 fichier 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.
.SH "VALEUR RENVOYEE"
.BR mknod
renvoie 0 s'il reussit, ou \-1 s'il echoue, auquel cas
.I errno
contient le code d'erreur.
.SH ERREURS
.TP
.B EPERM
.I mode
demande la creation d'un noeud autre qu'un tube nomme, alors que
le processus appelant n'est pas le Super\-User. Cette erreur se
produit egalement si le systeme de fichier contenant
.I pathname
ne supporte pas les noeuds du type demande.
.TP
.B EINVAL
.I mode
demande la creation d'autre chose qu'un fichier normal, fichier
special de peripherique ou tube nomme.
.TP
.B EEXIST
.I pathname
existe deja
.TP
.B EFAULT
.IR pathname " pointe en\-dehors de l'espace d'adressage accessible."
.TP
.B EACCES
Le repertoire parent n'autorise pas l'ecriture au processus, ou l'un
des repertoires de
.IR pathname
n'autorise pas la consultation de son contenu.
.TP
.B ENAMETOOLONG
.IR pathname " trop long."
.TP
.B ENOENT
Un repertoire du chemin d'acces
.I pathname
n'existe pas ou est un lien symbolique pointant nulle part.
.TP
.B ENOTDIR
Un element utilise dans le chemin
.I pathname
n'est pas un repertoire.
.TP
.B ENOMEM
Pas assez de memoire pour le noyau.
.TP
.B EROFS
.I pathname
correspond a un fichier sur un systeme de fichier en lecture seule.
.TP
.B ELOOP
.I pathname
contient une reference circulaire (a travers un lien symbolique).
.TP
.B ENOSPC
Le peripherique contenant
.I pathname
n'a pas assez de place pour le nouveau noeud. Cette erreur se
produit egalement si
le quota de disque de l'utilisateur est depasse.
.SH "CONFORMITE"
SVr4 (mais l'appel y necessite des privileges, alors qu'il n'y en a
pas besoin dans POSIX), BSD 4.4. La version Linux differe de celle de
SVr4 en ceci qu'elle n'a pas besoin de privileges root pour creer des
tubes, et qu'elle ne decrit pas les erreurs EMULTIHOP, ENOLINK, et EINTR.
.SH BUGS
.B mknod
ne peut pas etre utilise pour creer des repertoires ou des sockets,
et ne peut etre appele que par le Super\-User pour creer des fichiers normaux.
.PP
Il y a de nombreux problemes avec le protocole sous-jacent a NFS, certains
d'entre-eux pouvant affecter
.BR mknod .
.SH "VOIR AUSSI"
.BR read "(2), " write "(2), " fcntl "(2), " close (2),
.BR unlink "(2), " open "(2), " mkdir "(2), " stat "(2), " umask (2),
.BR mount "(2), " socket "(2), " fopen (3).
|