- NetBSD Manual Pages
OPENDISK(3) NetBSD Library Functions Manual OPENDISK(3)
Powered by man-cgi 1.15, Panagiotis Christias
opendisk, opendisk1 -- open a disk partition
System Utilities Library (libutil, -lutil)
opendisk(const char *path, int flags, char *buf, size_t buflen,
opendisk1(const char *path, int flags, char *buf, size_t buflen,
int iscooked, int (*ofn)(const char *, int, ...)));
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
- 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'
- 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'
If the above fails, then the original path is tried using the following
- 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 func-
tion 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
An open file descriptor, or -1 if the open(2) failed.
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
The opendisk1() function may also set errno to any value set by the ofn
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 direc-
NetBSD 9.99 April 4, 2018 NetBSD 9.99
Modified for NetBSD
by Kimmo Suominen