Provided by: manpages-dev_6.7-2_all bug

NAME

       makedev, major, minor - manage a device number

LIBRARY

       Standard C library (libc, -lc)

SYNOPSIS

       #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);

DESCRIPTION

       A  device ID consists of two parts: a major ID, identifying the class of the device, and a
       minor ID, identifying a specific instance of a device in  that  class.   A  device  ID  is
       represented using the type dev_t.

       Given  major  and  minor  device  IDs,  makedev()  combines  these to produce a device ID,
       returned as the function result.  This device ID can be given to mknod(2), for example.

       The major() and minor() functions perform the converse  task:  given  a  device  ID,  they
       return,  respectively, the major and minor components.  These macros can be useful to, for
       example, decompose the device IDs in the structure returned by stat(2).

ATTRIBUTES

       For an explanation of the terms used in this section, see attributes(7).

       ┌───────────────────────────────────────────────────────────────┬───────────────┬─────────┐
       │InterfaceAttributeValue   │
       ├───────────────────────────────────────────────────────────────┼───────────────┼─────────┤
       │makedev(), major(), minor()                                    │ Thread safety │ MT-Safe │
       └───────────────────────────────────────────────────────────────┴───────────────┴─────────┘

VERSIONS

       The BSDs expose the definitions for these macros via <sys/types.h>.

STANDARDS

       None.

HISTORY

       BSD, HP-UX, Solaris, AIX, Irix.

       These interfaces are defined as macros.  Since glibc 2.3.3, they  have  been  aliases  for
       three  GNU-specific  functions:  gnu_dev_makedev(),  gnu_dev_major(), and gnu_dev_minor().
       The latter names are exported, but the traditional names are more portable.

       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.

SEE ALSO

       mknod(2), stat(2)