| OPENDISK(3) | Library Functions Manual | OPENDISK(3) | 
opendisk, opendisk1 —
#include <util.h>
int
  
  opendisk(const char *path,
    int flags, char *buf,
    size_t buflen, int
  iscooked);
int
  
  opendisk1(const char *path,
    int flags, char *buf,
    size_t buflen, int iscooked,
    int (*ofn)(const char *, int, ...)));
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:
If path does not contain a slash (“/”), the following variations are attempted:
If the above fails, then the original path is tried using the following two variations:
opendisk1() is identical to
    opendisk() except uses the supplied
    ofn function instead of
    open(2). This function must be
    compatible with open(2) in the
    parameters it takes, the value it returns, and way that errors are
    indicated.
opendisk() and opendisk1() may
  set errno to one of the following values:
EFAULT]NULL
    pointer.EINVAL]O_CREAT
      was set in flags, or
      getrawpartition(3)
      didn't return a valid partition.The opendisk() function may also set
    errno to any value specified by the
    open(2) function.
The opendisk1() function may also set
    errno to any value set by the
    ofn function.
opendisk() function first appeared in
  NetBSD 1.3.
The opendisk1() function first appeared in
    NetBSD 6.0, and was documented in
    NetBSD 8.0.
The lookup order of opendisk() was changed
    in NetBSD 7.1 to first look in
    /dev in order to avoid opening random files in the
    current working directory.
| April 4, 2018 | NetBSD 10.0 |