readlink(2) lee el valor de un enlace simbólico

SINOPSIS

#include <unistd.h>

int readlink(const char *camino, char *buf, size_t tambuf);

DESCRIPCIÓN

readlink pone los contenidos del enlace simbólico camino en el búfer buf, que tiene de tamaño tambuf. readlink no añade un carácter NUL a buf. Truncará los contenidos (hasta una longitud de tambuf caracteres), en caso de que el búfer sea demasiado pequeño para alojar todo el contenido.

VALOR DEVUELTO

La llamada devuelve el número de caracteres puestos en el búfer si acaba con éxito, o un -1 si ocurre un error, poniendo el código correspondiente de error en errno.

ERRORES

ENOTDIR
Un componente del prefijo del camino no es un directorio.
EINVAL
tambuf no es positivo.
ENAMETOOLONG
El camino o un componente del camino es demasiado largo.
ENOENT
El fichero nombrado no existe.
EACCES
Se deniega el permiso de búsqueda para un componente del prefijo del camino.
ELOOP
Se encontraron demasiados enlaces simbólicos al traducir el nombre del fichero.
EINVAL
El fichero nombrado no es un enlace simbólico.
EIO
Ocurrió un error de E/S al leer del sistema de ficheros.
EFAULT
buf se extiende afuera del espacio de direcciones reservado por el proceso.
ENOMEM
No hay suficiente memoria en el núcleo.

CONFORME A

X/OPEN, 4.4BSD (la llamada al sistema readlink apareció en 4.2BSD).