Section: Manual del Programador de Linux (2)
Updated: 29 Marzo 1994
Index Return to Main
Contents
mknod - crea un directorio, un fichero especial o un fichero regular
#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);
intenta crear en el sistema de ficheros un nodo-i (fichero, fichero especial de dispositivo o tubería nombrada (FIFO)) llamado pathname, especificado por mode y dev. mode especifica tanto los permisos de uso como el tipo de nodo-i a crear. Debe ser una combinación (mediante un O-lógico) de uno de los tipos de ficheros enumerados a continuación y de los permisos para el nuevo nodo-i. Los permisos son modificados por la máscara umask en la forma usual: los permisos del nodo-i creado son (mode & ~umask).
El tipo de fichero debe ser uno de los siguientes: S_IFREG, S_IFCHR, S_IFBLK y S_IFIFO para especificar un fichero normal (que será creado vacío), un fichero especial de caracteres, un fichero especial de bloques o FIFO (tubería con nombre), respectivamente, o cero, lo que creará un fichero normal.
Si el tipo de fichero es S_IFCHR o S_IFBLK entonces dev especifica los números mayor y menor del fichero especial de dispositivo creado; en caso contrario, es ignorado.
El identificador efectivo de usuario del proceso indica el propietario del nuevo nodo-i. Si el directorio que contiene al nodo-i tiene activo el bit de SETGID (fijar identifcador de grupo) o si el sistema de ficheros es montado con la semántica de grupos de BSD, el nuevo nodo heredará la pertenencia al grupo al que pertenezca su directorio padre; en caso contrario, pertenecerá al grupo indicado por el identificador efectivo de grupo del proceso.
devuelve cero si ha funcionado correctamente, -1 si ha ocurrido un error (en cuyo caso se asigna a errno un valor apropiado).
SVr4 (pero la llamada requiere privilegios y por esto no es POSIX), 4.4BSD. La versión Linux difiere de la SVr4 en que no requiere permisos de superusuario para crear tuberías, y también en que los errores EMULTIHOP, ENOLINK, o EINTR no están documentados.
La llamada mknod no puede ser utilizada para crear directorios o ficheros de comunicaciones (sockets), y no puede ser utilizada para crear ficheros normales por usuarios que no sean el superusuario.
Existen numerosas pegas en el protocolo por debajo de NFS. Algunas de estas afectan a mknod.
(2), write(2), fcntl(2), close(2), unlink(2), open(2), mkdir(2), stat(2), umask(2), mount(2), socket(2), fopen(3).
This document was created by man2html, using
the manual pages.
Time: 06:16:20 GMT, January 22, 2005