NOMBRE¶
link - crea un nuevo nombre para un fichero
SINOPSIS¶
#include <unistd.h>
int link(const char *oldpath, const char
*newpath);
DESCRIPCIÓN¶
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 DEVUELTO¶
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
- Se han encontrado demasiados enlaces simbólicos al resolver
oldpath o newpath.
- ENOSPC
- El dispositivo que contiene el fichero no tiene espacio para la nueva
entrada de directorio.
- EPERM
- oldpath es un directorio.
- EIO
- Se ha producido un error de E/S.
OBSERVACIONES¶
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.
FALLOS¶
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.
VÉASE TAMBIÉN¶
symlink(2),
unlink(2),
rename(2),
open(2),
stat(2),
ln(1)