LINK(2)

NOMBRE
link - crea un nuevo nombre para un fichero

SINOPSIS
#include <unistd.h>

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

DESCRIPCION
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'.

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

ERRORES

EXDEV
    oldpath y newpath no están en el mismo sistema de ficheros.

EPERM
    El sistema de ficheros que contiene oldpath y newpath no soporta la creación de enlaces físicos.

EFAULT
    oldpath o newpath apunta fuera de tu espacio de direcciones accesibles.

EACCES
    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).

ENAMETOOLONG
    oldpath o newpath es demasiado largo.

ENOENT
    Un componente del directorio en oldpath o newpath no existe o es un enlace simbólico colgado.

ENOTDIR
    Un componente usado como directorio en oldpath o newpath no es, de hecho, un directorio.

ENOMEM
    Memoria de núcleo insuficiente.

EROFS
    El fichero está en un sistema de ficheros de sólo lectura.

EEXIST
    newpath ya existe.

EMLINK
    El fichero a que se refiere oldpath ya tiene el número máximo de enlaces a él.

ELOOP
    oldpath o newpath contiene una referencia a un enlace simbólico circular, p.ej. un enlace simbólico que al expansionarse contiene una referencia a sí mismo.

ENOSPC
    El dispositivo que contiene el fichero no tiene espacio para la nueva entrada de directorio.

EPERM
    oldpath es la entrada . o .. de un directorio.

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

CONFORMA CON
SVr4, SVID, POSIX, BSD 4.3. SVr4 documenta las condiciones de error adicionales ENOLINK y EMULTIHOP; POSIX.1 no documenta ELOOP.

FALLOS (BUGS)
En sistemas de ficheros NFS, el valor de retorno 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.

VEASE
symlink(2), unlink(2), rename(2), open(2), stat(2), ln(1), link(8).