NAME
opendisk
,
opendisk1
—
open a disk partition
LIBRARY
library “libutil”
SYNOPSIS
#include
<util.h>
int
opendisk
(const char *path,
int flags, char *buf,
size_t buflen, int
iscooked);
int
opendisk1
(const char *path,
int flags, char *buf,
size_t buflen, int iscooked,
int (*ofn)(const char *, int, ...)));
DESCRIPTION
opendisk
()
opens path, for reading and/or writing as specified by
the argument flags using
open(2), and the file descriptor is returned to the caller.
buf is used to store the resultant filename.
buflen is the size, in bytes, of the array referenced by
buf (usually MAXPATHLEN
bytes).
iscooked controls which paths in
/dev are tried.
opendisk
()
attempts to open the following variations of path, in
order:
If path does not contain a slash (“/”), the following variations are attempted:
- If iscooked is zero:
- /dev/rpath
- path with a prefix of “/dev/r”.
- /dev/rpathX
- path with a prefix of “/dev/r” and a suffix of ‘X’ (q.v.).
- If iscooked is non-zero:
- /dev/path
- path with a prefix of “/dev/”.
- /dev/pathX
- path with a prefix of “/dev/” and a suffix of ‘X’ (q.v.).
If the above fails, then the original path is tried using the following two variations:
- The iscooked value is ignored:
- path
- The pathname as given.
- pathX
- path with a suffix of ‘X’, where ‘X’ represents the raw partition of the device, as determined by getrawpartition(3), usually “c” or “d”.
opendisk1
()
is identical to opendisk
() except uses the supplied
ofn function instead of
open(2). This function must be compatible with
open(2) in the parameters it takes, the value it returns, and way
that errors are indicated.
RETURN VALUES
An open file descriptor, or -1 if the open(2) failed.
ERRORS
opendisk
() and
opendisk1
() may set errno to
one of the following values:
- [
EFAULT
] - buf was the
NULL
pointer. - [
EINVAL
] O_CREAT
was set in flags, or getrawpartition(3) didn't return a valid partition.
The opendisk
() function may also set
errno to any value specified by the
open(2) function.
The opendisk1
() function may also set
errno to any value set by the
ofn function.
SEE ALSO
HISTORY
The opendisk
() function first appeared in
NetBSD 1.3.
The opendisk1
() function first appeared in
NetBSD 6.0, and was documented in
NetBSD 8.0.
The lookup order of opendisk
() was changed
in NetBSD 7.1 to first look in
/dev in order to avoid opening random files in the
current working directory.