mknod
1. mknod.1.man
Manpage of MKNOD
MKNOD
Section: User Commands (1)Updated: 1998-11
Index Return to Main Contents
mknod -
mknod [] {bc} _ _
mknod [] p
GNU ( ): [-m ] [--help] [--version] [--]
mknod FIFO ( ), , .: . , . .
, , . (, , , ) (/dev/null, /dev/random).
, ( , , , ). . ( : / , / .)
mknod .
, , :
-
- p
- FIFO
- b
- ()
- c
- ()
GNU mknod u (`unbuffered') c.
, ( ( ) ; GNU 0x). 0666 (`a+rw') , umask.
- -m , --mode=
- , , chmod(1), .
GNU
- --help
- .
- --version
- .
- --
- .
mknod fileutils-4.0; . aeb@cwi.nl. fileutils-bugs@gnu.ai.mit.edu.
chmod(1), mkfifo(1), mknod(2) ף <corochoone@perm.ru> 2003
Index
This document was created by man2html using the manual pages.
Time: 17:41:49 GMT, May 11, 2012
2. mknod.2.man
Manpage of MKNOD
MKNOD
Section: Руководство программиста Linux (2)Updated: 2010-09-20
Index Return to Main Contents
ИМЯ
mknod - создает специальный или обычный файлОБЗОР
#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);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
mknod():
- _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE&& _XOPEN_SOURCE_EXTENDED
ОПИСАНИЕ
Системный вызов mknod() создаёт запись (node) в файловой системе (обычный файл, файл устройства или именованный канал) с именем pathname и атрибутами, заданными в mode и dev.Аргумент mode задает как права доступа, так и тип создаваемой записи. В этом параметре содержится битовая комбинация (используя побитовое логическое сложение OR) одного из нижеперечисленных типов файлов и прав доступа для новой записи.
При изменении прав доступа учитывается значение umask процесса: права доступа создаваемой записи становятся равны (mode & ~umask).
Значение типа файл должно быть одним из: S_IFREG (обычный файл, создаётся пустым), S_IFCHR (специальный символьный файл, S_IFBLK (специальный блочный файл, S_IFIFO (именованный канал) или S_IFSOCK (доменный сокет Unix ). Тип файла со значением 0 соответствует типу S_IFREG.
Если тип файла равен S_IFCHR или S_IFBLK, то в dev задаётся основной и вспомогательный номера создаваемого специального файла устройства (makedev(3) может оказаться полезной при создании значения для dev); в остальных случаях аргумент игнорируется.
Если pathname уже существует, или является символьной ссылкой, то вызов завершается с ошибкой EEXIST.
Созданный файл будет принадлежать ID эффективного владельца процесса. Если в правах доступа к каталогу, в котором находится файл, установлен бит set-group-ID, или если файловая система смонтирована с семантикой групп BSD, то новый файл унаследует группу-владельца от своего родительского каталога; в противном случае группой-владельцем станет ID эффективной группы процесса.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении функции mknod() возвращается 0. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.ОШИБКИ
- EACCES
- У процесса нет прав на запись в родительский каталог, или в одном из каталогов в pathname не разрешён поиск (см. также path_resolution(7)).
- EEXIST
- pathname уже существует. В этом случае pathname может быть символьной ссылкой, повисшей или нет.
- EFAULT
- Аргумент pathname указывает за пределы доступного адресного пространства.
- EINVAL
- В аргументе mode указано значение, отличное от значения для обычного файла, специального файла устройства, FIFO или сокета.
- ELOOP
- Во время определения pathname встретилось слишком много символьных ссылок.
- ENAMETOOLONG
- pathname слишком длинен.
- ENOENT
- Один из каталогов в pathname не существует или является повисшей символьной ссылкой.
- ENOMEM
- Недостаточное количество памяти ядра.
- ENOSPC
- На устройстве, содержащем pathname, нет места для создания нового элемента.
- ENOTDIR
- Компонент пути, использованный как каталог в pathname, в действительности таковым не является.
- EPERM
- В аргументе mode запрошено создание чего-то, отличного от обычного файла, специального файла устройства, FIFO (именованного канала) или доменного сокета Unix и у вызвавшего процесса нет прав (Linux: не имеет мандата CAP_MKNOD); также завершается, если файловая система, содержащая pathname, не поддерживает тип запрашиваемого элемента.
- EROFS
- pathname находится на файловой системе, доступной только для чтения.
СООТВЕТСТВИЕ СТАНДАРТАМ
SVr4, 4.4BSD, POSIX.1-2001 (смотрите далее).ЗАМЕЧАНИЯ
В POSIX.1-2001 сказано: "Единственный способ, которым можно использовать mknod() в переносимых программах это создание специального файла FIFO. Если значение mode не равно S_IFIFO или dev не равно 0, то поведение mknod() не определено." Однако, в настоящее время никогда не используйте mknod() для этой цели; вместо этого используйте функцию mkfifo(3), которая создана специально для этого.В Linux этот вызов не может использоваться для создания каталогов. Для создания каталогов есть системный вызов mkdir(2).
В протоколе, по которому работает NFS, содержится множество недоработок. Некоторые из них влияют на mknod().
СМОТРИТЕ ТАКЖЕ
chmod(2), chown(2), fcntl(2), mkdir(2), mknodat(2), mount(2), socket(2), stat(2), umask(2), unlink(2), makedev(3), mkfifo(3), path_resolution(7)
Index
This document was created by man2html using the manual pages.
Time: 17:41:49 GMT, May 11, 2012



