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 трактуются как в систем-
ном вызове chmod(2).
Идентификаторы владельца и группы файла устанавливаются
равными действующим идентификаторам, соответственно,
пользователя и группы процесса.
Значения аргумента mode, построенные не по правилам,
описанным выше, считаются неопределенными и не должны
использоваться. Младшие 9 бит значения mode модифициру-
ются маской режима создания файлов: обнуляются те биты,
которые соответствуют единичным битам маски [см.
umask(2)]. Если mode определяет специальный блочный или
символьный файл, то аргумент dev задает зависимую от
конфигурации системы спецификацию блочного или символь-
ного устройства ввода/вывода; в противном случае аргу-
мент dev игнорируется.
Системный вызов mknod может исполняться только супер-
пользователем для типов файлов, отличных от специально-
го именованного канала.
Системный вызов mknod завершается неудачей и новый файл
не создается, если выполнено хотя бы одно из следующих
условий:
[EPERM] Действующий идентификатор пользователя про-
цесса не равен идентификатору суперпользо-
вателя.
[ENOTDIR] Компонент маршрута не является каталогом.
[ENOENT] Компонент маршрута не существует.
[EROFS] Каталог, в котором файл должен быть создан,
расположен в файловой системе, доступной
только на чтение.
[EEXIST] Указанный файл уже существует.
[EFAULT] Аргумент path указывает за пределы отведен-
ного процессу адресного пространства.
[EINTR] Во время выполнения системного вызова пе-
рехвачен сигнал.
[ENOLINK] Маршрутное имя path указывает на удаленный
компьютер, связи с которым в данный момент
нет.
[EMULTIHOP] Компоненты path требуют многократного обра-
щения к удаленным компьютерам.
СМ. ТАКЖЕ
chmod(2), exec(2), umask(2), fs(4).
mkdir(1) в Справочнике пользователя.
ДИАГНОСТИКА
При успешном завершении результат равен 0; в случае
ошибки возвращается -1, а переменной errno присваивает-
ся код ошибки.
ПРЕДОСТЕРЕЖЕНИЯ
Если системный вызов mknod используется для создания
устройства в каталоге на удаленном компьютере (система
РУФ), то старший и младший номера устройства интерпре-
тируются обслуживающим процессом.
MKNOD(1M) MKNOD(1M)
НАЗВАНИЕ
mknod - создание специального файла
СИНТАКСИС
/etc/mknod имя [b] [c] старший_номер младший_номер
/etc/mknod имя p
ОПИСАНИЕ
Команда mknod создает элемент каталога и описатель для
специального файла.
Первым аргументом является имя элемента каталога. По
соглашениям ОС UNIX специальные файлы хранятся в ката-
логе /dev.
В первом варианте команды аргумент b означает, что спе-
циальный файл является блочным (диски, магнитная лен-
та); аргумент c означает, что файл является символьным.
Из двух аргументов - b и c - должен присутствовать ров-
но один. Старший и младший номера устройства могут быть
как десятичными, так и восьмеричными. Назначение стар-
ших номеров устройств специфично для каждой системы.
Информация об устройствах и их номерах содержится в
системном файле conf.c.
Второй вариант команды mknod используется для создания
именованных каналов.
Команду mknod может выполнять только суперпользователь.
СМ. ТАКЖЕ
mknod(2) в Справочнике программиста.
|