lookup_dcookie - return a directory entry's path
Standard C library (
libc,
-lc)
#include <sys/syscall.h> /* Definition of SYS_* constants */
#include <unistd.h>
int syscall(SYS_lookup_dcookie, uint64_t cookie, char *buffer,
size_t len);
Note: glibc provides no wrapper for
lookup_dcookie(),
necessitating the use of
syscall(2).
Look up the full path of the directory entry specified by the value
cookie. The cookie is an opaque identifier uniquely identifying a
particular directory entry. The buffer given is filled in with the full path
of the directory entry.
For
lookup_dcookie() to return successfully, the kernel must still hold a
cookie reference to the directory entry.
On success,
lookup_dcookie() returns the length of the path string copied
into the buffer. On error, -1 is returned, and
errno is set to indicate
the error.
- EFAULT
- The buffer was not valid.
- EINVAL
- The kernel has no registered cookie/directory entry
mappings at the time of lookup, or the cookie does not refer to a valid
directory entry.
- ENAMETOOLONG
- The name could not fit in the buffer.
- ENOMEM
- The kernel could not allocate memory for the temporary
buffer holding the path.
- EPERM
- The process does not have the capability
CAP_SYS_ADMIN required to look up cookie values.
- ERANGE
- The buffer was not large enough to hold the path of the
directory entry.
Available since Linux 2.5.43. The
ENAMETOOLONG error return was added in
Linux 2.5.70.
lookup_dcookie() is Linux-specific.
lookup_dcookie() is a special-purpose system call, currently used only by
the
oprofile(1) profiler. It relies on a kernel driver to register
cookies for directory entries.
The path returned may be suffixed by the string " (deleted)" if the
directory entry has been removed.
oprofile(1)