July 17, 2006 FHOPEN 2

### NAME

fhopen, fhstat, fhstatvfs - access file via file handle

### LIBRARY

Standard C Library (libc, -lc)

### SYNOPSIS

```int` fhopen(```const void *fhp``, size_t fh_size``, int flags`)
```int` fhstat(```const void *fhp``, size_t fh_size``, struct stat *sb`)
```int` fhstatvfs(```const void *fhp``, size_t fh_size``, struct statvfs *buf`)
```int` fhstatvfs1(```const void *fhp``, size_t fh_size``, struct statvfs *buf``, int flags`)

### DESCRIPTION

These functions provide a means to access a file given the opaque file handle ```fhp` and the size ```fh_size` of the opaque object as returned by getfh(2). As this method bypasses directory access restrictions, these calls are restricted to the superuser.

fhopen(``) opens the file referenced by ```fhp` for reading and/or writing as specified by the argument ```flags` and returns the file descriptor to the calling process. The ```flags` are specified by or'ing together the flags used for the open(2) call. All said flags are valid except for ```O_CREAT`.

fhstat(``), fhstatvfs(``), and fhstatvfs1(``) provide the functionality of the fstat(2), fstatvfs(2), and fstatvfs1(2) calls except that they return information for the file referred to by ```fhp` rather than an open file.

### RETURN VALUES

Upon successful completion, fhopen(``) returns the file descriptor for the opened file, while fhstat(``), fhstatvfs(``), and fhstatvfs1(``) return 0. Otherwise, -1 is returned and errno is set to indicate the error.

### ERRORS

In addition to the errors returned by open(2), fstat(2), fstatvfs(2), and fstatvfs1(2), respectively, fhopen(``), fhstat(``), fhstatvfs(``), and fhstatvfs1(``) will return

[```EINVAL`]
  Calling fhopen(``) with ```O_CREAT` set or invalid ```fh_size`.

[```ESTALE`]
  The file handle ```fhp` is no longer valid.

### SEE ALSO

fstat(2), fstatvfs(2), fstatvfs1(2), getfh(2), open(2)

### HISTORY

The fhopen(``), and fhstat(``) functions first appeared in NetBSD1.5. The fhstatvfs(``) function replaced fhstatfs(``) in NetBSD3.0.