makedev, major, minor -
デバイス番号の操作
#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
とマイナー ID
の二つの部分から構成される。
メジャー ID
はデバイスクラスの識別に使用され、マイナー
ID は
そのクラス内の特定のデバイスインスタンスの識別に使用される。
デバイス ID は
dev_t
型を用いて表現される。
makedev()
は、指定されたメジャー
ID とマイナー ID
を組み合わせて
デバイス ID
を生成し、関数の結果として返す。
このデバイス ID は
mknod(2)
などに渡すことができる。
関数
major() と
minor() は
makedev()
と反対の処理を行う。
つまり、device ID
を渡すと、それぞれメジャー
ID 部分とマイナー ID
部分
を返す。これらのマクロは、例えば、
stat(2)
が返す構造体に含まれる
デバイス ID
を分解する場合などで役に立つ。
この節で使用されている用語の説明については、
attributes(7) を参照。
インターフェース |
属性 |
値 |
makedev(), major(), minor() |
Thread safety |
MT-Safe |
関数
makedev(),
major(),
minor() は
POSIX.1
では規定されていないが、他の多くのシステムにも存在する。
これらのインターフェースはマクロとして定義されている。
glibc 2.3.3
以降では、これらは GNU
固有の 3 つの関数
gnu_dev_makedev(),
gnu_dev_major(),
gnu_dev_minor()
の エイリアス (別名)
となっている。後者の名前がエクスポートされるが、
以前から使われている前者の名前の方が移植性がある。
The BSDs expose the definitions for these macros via
<sys/types.h>.
Depending on the version, glibc also exposes definitions for these macros from
that header file if suitable feature test macros are defined. However, this
behavior was deprecated in glibc 2.25, and since glibc 2.28,
<sys/types.h> no longer provides these definitions.
mknod(2),
stat(2)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。