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.