makedev, major, minor -
управление
номером
устройства
Standard C library (
libc,
-lc)
#include <sys/sysmacros.h>
dev_t makedev(unsigned int maj, unsigned int min);
unsigned int major(dev_t dev);
unsigned int minor(dev_t dev);
Идентификатор
(ID)
устройства
состоит из
двух
частей:
старшего
номера,
определяющего
класс
устройства,
и младшего
номера,
указывающего
на
определённый
экземпляр
устройства
в этом
классе. Для
представления
ID
устройства
используется
тип
dev_t.
Функция
makedev()
объединяет
указанные
старший и
младший ID
устройства,
возвращая ID
устройства.
Этот ID может
быть
передан
mknod(2).
Функции
major() и
minor()
выполняют
обратную
задачу: по
указанному
ID
устройства
они
возвращают,
соответственно,
старший и
младший
номера.
Данные
макросы
могут
пригодиться,
например,
для
разложения
ID
устройства
из
структуры,
возвращенной
stat(2).
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
makedev(), major(), minor() |
Безвредность
в нитях |
MT-Safe |
Функции
makedev(),
major() и
minor() не
описаны в POSIX.1,
однако
присутствуют
во многих
системах.
Данные
интерфейсы
определены
как
макросы.
Начиная с glibc 2.3.3,
они
являются
псевдонимами
для трёх
GNU-функций:
gnu_dev_makedev(),
gnu_dev_major() и
gnu_dev_minor(). Эти
имена
экспортированы,
однако
использование
традиционных
имён более
переносимо.
В BSD
определения
этих
макросов
доступны в
<sys/types.h>. В
зависимости
от версии, в
glibc они также
доступны
из этого
заголовочного
файла, если
определён
подходящий
макрос
тестирования
свойств.
Однако
такое
применение
устарело в
glibc 2.25, и начиная
с glibc 2.28, эти
определения
были
удалены из
<sys/types.h>.
mknod(2),
stat(2)
Русский
перевод
этой
страницы
руководства
был сделан
aereiae <
[email protected]>, Alexey <
[email protected]>, Azamat
Hackimov <
[email protected]>, Dmitriy S. Seregin
<
[email protected]>, Dmitry Bolkhovskikh <
[email protected]>,
ITriskTI <
[email protected]>, Max Is <
[email protected]>, Yuri
Kozlov <
[email protected]>, Иван
Павлов <
[email protected]>
и Малянов
Евгений
Викторович
<
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]