GETDEVMAJOR(3)

GETDEVMAJOR(3) | Library Functions Manual | GETDEVMAJOR(3)

# NAME

`getdevmajor` —
get block or character device major number

# LIBRARY

Standard C Library (libc, -lc)

# SYNOPSIS

`#include <stdlib.h>`
`#include <sys/stat.h>`

devmajor_t
`getdevmajor`(const char *name, mode_t type);

# DESCRIPTION

The `getdevmajor`() function returns the major device number of the block or character device specified by name and a file type matching the one encoded in type which must be one of `S_IFBLK` or `S_IFCHR`.

# RETURN VALUES

If no device matches the specified values, no information is available, or an error occurs, `NODEVMAJOR` is returned and errno is set to indicate the error.

# EXAMPLES

To retrieve the major number for pty(4) slave devices (aka pts devices):

    #include <stdlib.h>
    #include <sys/stat.h>

    devmajor_t pts;
    pts = getdevmajor("pts", S_IFCHR);

To retrieve the major numbers for the block and character wd(4) devices:

    #include <stdlib.h>
    #include <sys/stat.h>

    devmajor_t c, b;
    c = getdevmajor("wd", S_IFCHR);
    b = getdevmajor("wd", S_IFBLK);

# ERRORS

The `getdevmajor`() function may fail and set errno for any of the errors specified for the library functions malloc(3) and sysctlbyname(3). In addition, the following errors may be reported:

[`EINVAL`]
  The value of the type argument is not `S_IFCHR` or `S_IFBLK`.
[`ENOENT`]
  The named device is not found.

# SEE ALSO

stat(2), devname(3), malloc(3), sysctlbyname(3)

# HISTORY

The `getdevmajor`() function call appeared in NetBSD 3.0.

January 20, 2009 | NetBSD 9.0