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:
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”.
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.).