DOKK / manpages / debian 10 / manpages-es / link.2.es
LINK(2) Manual del Programador de Linux LINK(2)

link - crea un nuevo nombre para un fichero

#include <unistd.h>

int link(const char *oldpath, const char *newpath);

link crea un nuevo enlace (también conocido como enlace físico) a un fichero existente.

Si newpath existe, no será sobreescrito.

Este nuevo nombre podrá ser usado exactamente igual que el viejo para cualquier operación; ambos nombres se refieren al mismo fichero (y por lo tanto, tienen los mismos permisos y propietario) y es imposible decir qué nombre era el `original'.

Si hubo éxito, se devuelve cero. Si hubo error, se devuelve -1, y errno se actualiza apropiadamente.

oldpath y newpath no están en el mismo sistema de ficheros.
El sistema de ficheros que contiene oldpath y newpath no soporta la creación de enlaces físicos.
oldpath o newpath apunta fuera de tu espacio de direcciones accesibles.
El acceso de escritura al directorio que contiene newpath no está permitido para el uid efectivo del proceso, o uno de los directorios en oldpath o newpath no da permiso de búsqueda (ejecución).
oldpath o newpath es demasiado largo.
Un componente del directorio en oldpath o newpath no existe o es un enlace simbólico colgado.
Un componente usado como directorio en oldpath o newpath no es, de hecho, un directorio.
Memoria de núcleo insuficiente.
El fichero está en un sistema de ficheros de sólo lectura.
newpath ya existe.
El fichero a que se refiere oldpath ya tiene el número máximo de enlaces a él.
Se han encontrado demasiados enlaces simbólicos al resolver oldpath o newpath.
El dispositivo que contiene el fichero no tiene espacio para la nueva entrada de directorio.
oldpath es un directorio.
Se ha producido un error de E/S.

Los enlaces físicos, tal y como los crea link, no pueden cruzar sistemas de ficheros. Utiliza symlink si esto es necesario.

SVr4, SVID, POSIX, BSD 4.3 y X/OPEN. SVr4 documenta las condiciones de error adicionales ENOLINK y EMULTIHOP; POSIX.1 no documenta ELOOP. X/OPEN no documenta EFAULT, ENOMEM ni EIO.

En sistemas de ficheros NFS, el valor devuelto podría ser incorrecto en caso de que el servidor NFS lance la creación del enlace y muera antes de poder terminarlo. Utiliza stat(2) para averiguar si se creó el enlace.

symlink(2), unlink(2), rename(2), open(2), stat(2), ln(1)

10 diciembre 1997 Linux 2.0.30