fhreadlink(2)

fhreadlink2

Read value of a symbolic link

Usage

#include <sys/param.h>

#include <sys/mount.h>

int

fhreadlink(fhandle_t *fhp, char *buf, size_t bufsize);

Library

Standard C Library (libc, -lc)

Overview

The fhreadlink() system call places the contents of the symbolic link fhp in the buffer buf, which has size bufsiz. The fhreadlink() system call does not append a NUL character to buf.

Return values

The call returns the count of characters placed in the buffer if it succeeds, or a -1 if an error occurs, placing the error code in the global variable errno.

Errors

The fhreadlink() system call will fail if:

[ENOENT]

The named file does not exist.

[ELOOP]

Too many symbolic links were encountered in translating the file handle fhp.

[EINVAL]

The named file is not a symbolic link.

[EIO]

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

[EINTEGRITY]

Corrupted data was detected while reading from the file system.

[EFAULT]

The buf argument extends outside the process's allocated address space.

[ESTALE]

The file handle fhp is no longer valid

Releases

19 releases since FreeBSD 12.1-RELEASE; the text changed 10 times.

  1. 12.1
  2. 12.2
  3. 12.3
  4. 12.4
  5. 13.0–13.1
  6. 13.2
  7. 13.3–13.4
  8. 13.5
  9. 14.0–14.2
  10. 14.3–14.5
  11. 15.0–16.0

History

The fhreadlink() system call first appeared in FreeBSD 12.1.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.