int
opendisk(
const char *path
int flags
char *buf
size_t buflen
int iscooked
)
)
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
path
X
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:
iscooked
is zero:
/dev/rpath
path
with a prefix of
``
/dev/r
''.
/dev/rpath
X
path
with a prefix of
``
/dev/r
''
and a suffix of
`X'
(q.v.).
iscooked
is non-zero:
/dev/path
path
with a prefix of
``
/dev/
''.
/dev/path
X
path
with a prefix of
``
/dev/
''
and a suffix of
`X'
(q.v.).
)
may set
errno
to one of the following values:
EINVAL
]
O_CREAT
was set in
flags
,
or
getrawpartition(3)
didn't return a valid partition.
EFAULT
]
buf
was the
NULL
pointer.
The
opendisk()
function
may also set
errno
to any value specified by the
open(2)
function.
)
function first appeared in
NetBSD1.3.