OPENDISK(3)

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.

# SEE ALSO

open(2), getrawpartition(3)

# HISTORY

The opendisk() function first appeared in NetBSD 1.3.

December 11, 2001 | NetBSD 5.99