MAKE_DEV(9)

名称
make_dev, destroy_dev - 新しいデバイスのための dev_t の作成と削除

書式
<sys/types.h> <sys/conf.h> dev_t make_dev(struct cdevsw *cdevsw, int minor, uid_t uid, gid_t gid, int perms, char *fmt, ...) void destroy_dev(dev_t dev)

解説
make_dev() 関数は新しいデバイスのための dev_t 構造体を作成します。 そのデバイスは uid によって所有され、 gid のグループに所有され、 name で指定される名前を持ちます。 perms に指定するファイルのパーミッションは <sys/stat.h> で定義されています。

    #define S_IRWXU 0000700    /* 所有者の RWX マスク
    #define S_IRUSR 0000400    /* 所有者の R */
    #define S_IWUSR 0000200    /* 所有者の W */
    #define S_IXUSR 0000100    /* 所有者の X */
    #define S_IRWXG 0000070    /* グループの RWX マスク */
    #define S_IRGRP 0000040    /* グループの R */
    #define S_IWGRP 0000020    /* グループの W */
    #define S_IXGRP 0000010    /* グループの X */
    #define S_IRWXO 0000007    /* その他の RWX マスク */
    #define S_IROTH 0000004    /* その他の R */
    #define S_IWOTH 0000002    /* その他の W */
    #define S_IXOTH 0000001    /* その他の X */
    #define S_ISUID 0004000    /* 実行時にユーザ ID を設定 */
    #define S_ISGID 0002000    /* 実行時にグループ ID を設定 */
    #define S_ISVTX 0001000    /* スティッキービット */
    #ifndef _POSIX_SOURCE
    #define S_ISTXT 0001000
    #endif

destroy_dev() 関数は、 make_dev() から返された dev_t をとり、そのデバイスの登録を削除します。

歴史
make_dev() および destroy_dev() 関数は FreeBSD 4.0 で初めて登場しました。