NAME
devname
,
devname_r
, fdevname
,
fdevname_r
—
get device name
LIBRARY
library “libc”
SYNOPSIS
#include
<sys/stat.h>
#include <stdlib.h>
char *
devname
(dev_t
dev, mode_t
type);
char *
devname_r
(dev_t
dev, mode_t type,
char *buf,
size_t len);
char *
fdevname
(int
fd);
int
fdevname_r
(int
fd, char *buf,
size_t len);
DESCRIPTION
Thedevname
()
and
devname_r
()
functions return a pointer to the name of the block or character device in
/dev with a device number of
dev, and a file type matching the one encoded in
type which must be one of
S_IFBLK
or S_IFCHR
. To find
the right name, devname
() and
devname_r
() first search the device database created
by dev_mkdb(8); if that fails, it will format the information
encapsulated in dev and type in a
human-readable format.
The
fdevname
()
and
fdevname_r
()
function obtain the device name directly from a file descriptor pointing to
a character device.
devname
()
and fdevname
() returns a pointer to an internal
static object; thus, subsequent calls will modify the same buffer.
devname_r
() and fdevname_r
()
avoid this problem by taking a buffer buf and a buffer
length len as arguments.
RETURN VALUES
The devname
(),
devname_r
() and fdevname
()
functions return a pointer to the name of the block or character device in
/dev if successful; otherwise
NULL
is returned. If
fdevname
() fails, errno is set
to indicate the error.
The fdevname_r
() function returns 0 if
successful. Otherwise an error number is returned.
ERRORS
The fdevname
() and
fdevname_r
() functions may fail and return the
following error codes:
- [
EBADF
] - The fd is not a valid open file descriptor.
- [
EINVAL
] - The fd must belong to a character device.
The fdevname_r
() function may fail and
return the following error code:
- [
ERANGE
] - The len argument is smaller than the length of the string to be returned.
SEE ALSO
HISTORY
The devname
() function appeared in
4.4BSD.
The devname_r
() function appeared in
DragonFly 1.0 and the
fdevname
() and fdevname_r
()
functions appeared in DragonFly 2.3.