#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);
makedev() は、指定されたメジャー ID とマイナー ID を組み合わせて デバイス ID を生成し、関数の結果として返す。 このデバイス ID は mknod(2) などに渡すことができる。
関数 major() と minor() は makedev() と反対の処理を行う。 つまり、device ID を渡すと、それぞれメジャー ID 部分とマイナー ID 部分 を返す。これらのマクロは、例えば、 stat(2) が返す構造体に含まれる デバイス ID を分解する場合などで役に立つ。
| インターフェース | 属性 | 値 |
| makedev(), major(), minor() | Thread safety | MT-Safe |
これらのインターフェースはマクロとして定義されている。 glibc 2.3.3 以降では、これらは GNU 固有の 3 つの関数 gnu_dev_makedev(), gnu_dev_major(), gnu_dev_minor() の エイリアス (別名) となっている。後者の名前がエクスポートされるが、 以前から使われている前者の名前の方が移植性がある。
Depending on the version, glibc also exposes definitions for these macros from <sys/types.h> 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.