MAKEDEV(3)

名前
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/ に書かれている。