| OPENDISK(3) | Library Functions Manual | OPENDISK(3) | 
NAME
 opendisk — open a disk partition
LIBRARY
 System Utilities Library (libutil, -lutil)
SYNOPSIS
 #include <util.h>
int
opendisk(const char *path, int flags, char *buf, size_t buflen, int iscooked);
 
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:
- 
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.).
 
 
RETURN VALUES
 An open file descriptor, or -1 if the 
open(2) failed.
 
ERRORS
 opendisk() 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.
 
HISTORY
 The opendisk() function first appeared in NetBSD 1.3.