Standard C Library (libc, -lc)
getfh() returns a file handle for the specified file or
  directory in the file handle pointed to by fhp. The
  variable pointed to by fh_size has to be initialized to
  the memory allocated for the variable sized file handle. On return the value
  will be replaced by the actual size needed (which will vary depending on the
  file system the path is on). This system call is restricted to the superuser.
  To query the necessary size for the filehandle, a NULL
  pointer may be passed as fhp, and the value pointed to
  by fh_size should be initialized to zero.
Upon successful completion, a value of 0 is returned. Otherwise, -1 is returned
  and the global variable errno is set to indicate the
  error.
getfh() fails if one or more of the following are true:
  - [ENOTDIR]
- A component of the path prefix of path is not a
      directory.
- [ENAMETOOLONG]
- The length of a component of path exceeds
      {NAME_MAX} characters, or the length of
      path exceeds {PATH_MAX}
      characters.
- [ENOENT]
- The file referred to by path does not exist.
- [EACCES]
- Search permission is denied for a component of the path prefix of
      path.
- [ELOOP]
- Too many symbolic links were encountered in translating
      path.
- [EFAULT]
- fhp points to an invalid address.
- [EIO]
- An I/O error occurred while reading from or writing to the file
    system.
- [E2BIG]
- The memory allocated for the file handle is too small. The size needed has
      been written to the variable pointed to by
    fh_size.
- [ENOMEM]
- The kernel failed to allocate temporary memory to create a filehandle of
      the requested size.
Thegetfh() function first appeared in
  4.4BSD.