GETFH(2)
β¨ GETFH(2) β get file handle β¨
Okay bestie, this is the System Calls Manual page for GETFH(2). Itβs the file-handle trio: getfh(), lgetfh(), and getfhat(). Theyβre lowkey elite, highkey superuser-only, and they hand you a fhandle_t like a little backstage pass to a file. π
πΈ NAME πΈ
getfh, lgetfh, getfhat β 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);
int
getfhat(int fd, const char *path, fhandle_t *fhp, int flag);
π 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. Itβs giving βlook at the link itself, not the linkβs main character.β π
The getfhat() system call is equivalent to getfh() and lgetfh() except when the path specifies a relative path. For getfhat() and relative path, the status is retrieved from a file relative to the directory associated with the file descriptor fd instead of the current working directory.
The values for the flag are constructed by a bitwise-inclusive OR of flags from this list, defined in <fcntl.h>:
AT_SYMLINK_NOFOLLOWβ Ifpathnames a symbolic link, the status of the symbolic link is returned.AT_RESOLVE_BENEATHβ Only walk paths below the directory specified by thefddescriptor. See the description of theO_RESOLVE_BENEATHflag in theopen(2)manual page.
If getfhat() is passed the special value AT_FDCWD in the fd parameter, the current working directory is used and the behavior is identical to a call to getfth() or lgetfh() respectively, depending on whether or not the AT_SYMLINK_NOFOLLOW bit is set in flag. Yes, getfth() β thatβs the pageβs spelling, Iβm just the messenger π
When getfhat() is called with an absolute path, it ignores the fd argument.
These system calls are restricted to the superuser. Not me gatekeeping, bestie β thatβs literally what the page says. π₯
π RETURN VALUES π
Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error. So: 0 = slay, -1 = check errno, fr fr.
π ERRORS π
The getfh() and lgetfh() system calls fail if one or more of the following are true:
[EPERM]β The caller does not have appropriate privilege to perform the operation.[ENOTDIR]β A component of the path prefix ofpathis not a directory.[ENAMETOOLONG]β The length of a component ofpathexceeds255characters, or the length ofpathexceeds1023characters.[ENOENT]β The file referred to bypathdoes not exist.[EACCES]β Search permission is denied for a component of the path prefix ofpath.[ELOOP]β Too many symbolic links were encountered in translatingpath.[EFAULT]β Thefhpargument points to an invalid address.[EFAULT]β Thepathargument points to an invalid address.[EIO]β An I/O error occurred while reading from or writing to the file system.[EINTEGRITY]β Corrupted data was detected while reading from the file system.[ESTALE]β The file handlefhpis no longer valid.
In addition to the errors returned by getfh(), and lgetfh(), the getfhat() system call may fail if:
[EBADF]β Thepathargument does not specify an absolute path and thefdargument, is neitherAT_FDCWDnor a valid file descriptor open for searching.[EINVAL]β The value of theflagargument is not valid.[ENOTDIR]β Thepathargument is not an absolute path andfdis neitherAT_FDCWDnor a file descriptor associated with a directory.
π«Ά SEE ALSO π«Ά
β HISTORY β
The getfh() system call first appeared in 4.4BSD. The lgetfh() system call first appeared in FreeBSD 5.3. The getfhat() system call first appeared in FreeBSD 12.1. History lesson, periodt. π
Debian β’ November 30, 2022 β thatβs the source/version and date, bestie. Stay iconic, and may your file handles stay valid π
π¦ where this page comes from
- freebsd 15.1: base 15.1
- Copyright (c) 1989, 1991, 1993 The Regents of the University of California. All rights reserved
- Copyright (c) 2018 Gandi
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms