---
name: "getfh"
section: "2"
platform: "linux"
package: "freebsd-manpages"
version: "6.0-5"
release: "Debian 4.0 (Etch)"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/getfh"
---

# getfh(2)

get file handle

## NAME

**getfh**, **lgetfh** – get file handle

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<sys/param.h\>**

**#include \<sys/mount.h\>**

*int*\

**getfh**(*const char \*path*, *fhandle\_t \*fhp*);

*int*\

**lgetfh**(*const char \*path*, *fhandle\_t \*fhp*);

## DESCRIPTION

The **getfh**() system call returns a file handle for the specified file or directory in the file handle pointed to by *fhp*. The **lgetfh**() system call is like **getfh**() except in the case where the named file is a symbolic link, in which case **lgetfh**() returns information about the link, while **getfh**() returns information about the file the link references. These system calls are restricted to the superuser.

## RETURN VALUES

The **getfh()** function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

## ERRORS

The **getfh**() and **lgetfgh**() system calls fail 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 255 characters, or the length of *path* exceeds 1023 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\]

  The *fhp* argument points to an invalid address.

- \[EIO\]

  An I/O error occurred while reading from or writing to the file system.

## HISTORY

The **getfh**() system call first appeared in 4.4BSD.
