| Сервер поддерживается Центром Информационных Технологий (095) 932-9212, 932-9213, 939-0783 E-mail: info@citforum.ru

Сервер содержит море(!) аналитической информации | CIT Forum CD-ROM

### 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 используется для создания устройства в каталоге на удаленном компьютере (система РУФ), то старший и младший номера устройства интерпретируются обслуживающим процессом.

Comments: info@citmgu.ru Designed by Andrey Novikov Copyright © CIT