FHOPEN(2) | System Calls Manual | FHOPEN(2)

# NAME

`fhopen`, `fhstat`, `fhstatfs` — access file via file handle

# SYNOPSIS

`#include <sys/types.h>`
`#include <sys/stat.h>`

int
`fhopen`(const fhandle_t *fhp, int flags);

int
`fhstat`(const fhandle_t *fhp, struct stat *sb);

int
`fhstatfs`(const fhandle_t *fhp, struct statfs *buf);

# DESCRIPTION

These functions provide a means to access a file given the file handle fhp. 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`() and `fhstatfs`() provide the functionality of the fstat(2) and fstatfs(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`() and `fhstatfs`() 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), and fstatfs(2) respectively, `fhopen`(), `fhstat`(), and `fhstatfs`() will return

[`EINVAL`]
  Calling `fhopen`() with `O_CREAT` set.
[`ESTALE`]
  The file handle fhp is no longer valid.

# SEE ALSO

fstat(2), fstatfs(2), getfh(2), open(2)

# HISTORY

The `fhopen`(), `fhstat`(), and `fhstatfs`() functions first appeared in NetBSD 1.5.

September 10, 2015 | Debian