OPENDEV(3)

NAME
opendev - short form device open routine

SYNOPSIS
libutil
#include <util.h>
int
opendev(const char *path, int oflags, int dflags, char **realpath);

DESCRIPTION
The opendev() function opens a device using a “short form” name or disklabel(8) UID (DUID). For instance “sd0” or “sd0c” will be expanded to /dev/rsd0c on most architectures.

Device name lookup is done by first checking path for a ‘/’ and if one is found attempting to open that file. If not, path is checked to see if it is a valid DUID. If it is, the corresponding device is obtained via diskmap(4). If path has no ‘/’ and is not a DUID, /dev is searched for a matching device.

The oflags are the same as the flags passed to open(2).

The dflags are specified by OR'ing the following values:

    OPENDEV_PART	attempt to open the raw partition during expansion
    OPENDEV_BLCK	open the block device (default is character device)

If realpath is not NULL, it is modified to point at the fully expanded device name.

RETURN VALUES
The opendev() return value and errors are the same as the return value and errors of open(2).

SEE ALSO
open(2), getrawpartition(3), diskmap(4), disklabel(8)

HISTORY
The opendev() function first appeared in OpenBSD 1.2.

CAVEATS
If realpath is not NULL, on return it will point to internal static storage space that will be overwritten by subsequent calls.