open a disk's “raw”
opendisk(const char *path,
int flags, char *buf,
size_t buflen, int
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
bytes). If iscooked is non zero, the
“cooked” partition (block device) is opened, rather than the
“raw” partition (character device).
attempts to open the following variations of path, in
- The pathname as given.
- path with a suffix of ‘X’, where ‘X’ represents the raw partition of the device, as determined by getrawpartition(3), usually “c”.
If iscooked is zero, then the following two variations are attempted:
- path with a prefix of “/dev/r”.
- path with a prefix of “/dev/r” and a suffix of ‘X’ (q.v.).
Otherwise (i.e., iscooked is non-zero), the following variations are attempted:
- path with a prefix of “/dev/”.
- path with a prefix of “/dev/” and a suffix of ‘X’ (q.v.).
An open file descriptor, or -1 if the open(2) failed.
opendisk() may set
errno to one of the following values:
O_CREATwas set in flags, or getrawpartition(3) didn't return a valid partition.
opendisk() function may also set
errno to any value specified by the
opendisk() function first appeared in