December 11, 2001 OPENDISK 3

### NAME

opendisk - open a disk partition

### LIBRARY

System Utilities Library (libutil, -lutil)

### SYNOPSIS

```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.

```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:

  - If ```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.).

  - If ```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.).

### 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.

### SEE ALSO

open(2), getrawpartition(3)

### HISTORY

The opendisk(``) function first appeared in NetBSD1.3.