名 前
makedev, major, minor − デ バ イ ス 番 号 の 操 作
書 式
#define
_BSD_SOURCE /* feature_test_macros(7) 参 照
*/
#include <sys/types.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 を 分 解 す る 場 合 な ど で 役 に 立 つ 。
準 拠
関 数 makedev(), major(), minor() は POSIX.1 で は 規 定 さ れ て い な い が 、 他 の 多 く の シ ス テ ム に も 存 在 す る 。
注 意
こ れ ら の イ ン タ ー フ ェ ー ス は マ ク ロ と し て 定 義 さ れ て い る 。 glibc 2.3.3 以 降 で は 、 こ れ ら は GNU 固 有 の 3 つ の 関 数 gnu_dev_makedev(), gnu_dev_major(), gnu_dev_minor() の エ イ リ ア ス (別 名 ) と な っ て い る 。 後 者 の 名 前 が エ ク ス ポ ー ト さ れ る が 、 以 前 か ら 使 わ れ て い る 前 者 の 名 前 の 方 が 移 植 性 が あ る 。
関 連 項 目
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。