MKNOD(2)
MKNOD(2)
НАЗВАНИЕ
mknod - создание каталога, специального или обычного файла
СИНТАКСИС
int mknod (path, mode, dev) char *path; int mode, dev;
ОПИСАНИЕ
Системный вызов mknod создает новый файл с маршрутным именем, на которое указывает аргумент path. Режим нового файла определяется аргументом mode. Биты в значении mode интерпретируется следующим образом:
0010000 | Специальный именованный канал. |
0020000 | Специальный символьный файл. |
0040000 | Каталог. |
0060000 | Специальный блочный файл. |
0100000 или 0000000 | Обычный файл. |
Остальные биты в значении mode трактуются как в системном вызове .
Идентификаторы владельца и группы файла устанавливаются равными действующим идентификаторам, соответственно, пользователя и группы процесса.
Значения аргумента mode, построенные не по правилам, описанным выше, считаются неопределенными и не должны использоваться. Младшие 9 бит значения mode модифицируются маской режима создания файлов: обнуляются те биты, которые соответствуют единичным битам маски[см. ]. Если mode определяет специальный блочный или символьный файл, то аргумент dev задает зависимую от конфигурации системы спецификацию блочного или символьного устройства ввода/вывода; в противном случае аргумент dev игнорируется.
Системный вызов mknod может исполняться только суперпользователем для типов файлов, отличных от специального именованного канала.
Системный вызов mknod завершается неудачей и новый файл не создается, если выполнено хотя бы одно из следующих условий:
[EPERM] Действующий идентификатор пользователя процесса не равен идентификатору суперпользователя. [ENOTDIR] Компонент маршрута не является каталогом. [ENOENT] Компонент маршрута не существует. [EROFS] Каталог, в котором файл должен быть создан, расположен в файловой системе, доступной только на чтение. [EEXIST] Указанный файл уже существует. [EFAULT] Аргумент path указывает за пределы отведенного процессу адресного пространства. [EINTR] Во время выполнения системного вызова перехвачен сигнал. [ENOLINK] Маршрутное имя path указывает на удаленный компьютер, связи с которым в данный момент нет. [EMULTIHOP] Компоненты path требуют многократного обращения к удаленным компьютерам.
СМ. ТАКЖЕ
, , , . в Справочнике пользователя.
ДИАГНОСТИКА
При успешном завершении результат равен 0; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки.
ПРЕДОСТЕРЕЖЕНИЯ
Если системный вызов mknod используется для создания устройства в каталоге на удаленном компьютере (система РУФ), то старший и младший номера устройства интерпретируются обслуживающим процессом.