получить дескриптор для имени пути и открыть файл через дескриптор (obtain handle for a pathname and open file via a handle)
Ошибки (Error)
name_to_handle_at() and open_by_handle_at() can fail for the same
errors as openat(2). In addition, they can fail with the errors
noted below.
name_to_handle_at() can fail with the following errors:
EFAULT pathname, mount_id, or handle points outside your
accessible address space.
EINVAL flags includes an invalid bit value.
EINVAL handle->handle_bytes is greater than MAX_HANDLE_SZ.
ENOENT pathname is an empty string, but AT_EMPTY_PATH was not
specified in flags.
ENOTDIR
The file descriptor supplied in dirfd does not refer to a
directory, and it is not the case that both flags includes
AT_EMPTY_PATH and pathname is an empty string.
EOPNOTSUPP
The filesystem does not support decoding of a pathname to
a file handle.
EOVERFLOW
The handle->handle_bytes value passed into the call was
too small. When this error occurs, handle->handle_bytes
is updated to indicate the required size for the handle.
open_by_handle_at() can fail with the following errors:
EBADF mount_fd is not an open file descriptor.
EBADF pathname is relative but dirfd is neither AT_FDCWD nor a
valid file descriptor.
EFAULT handle points outside your accessible address space.
EINVAL handle->handle_bytes is greater than MAX_HANDLE_SZ or is
equal to zero.
ELOOP handle refers to a symbolic link, but O_PATH was not
specified in flags.
EPERM The caller does not have the CAP_DAC_READ_SEARCH
capability.
ESTALE The specified handle is not valid. This error will occur
if, for example, the file has been deleted.