NOMBRE¶
symlink - construye un nombre nuevo para un fichero
SINOPSIS¶
#include <unistd.h>
int symlink(const char *caminoviejo, const char
*caminonuevo);
DESCRIPCIÓN¶
symlink crea un enlace simbólico llamado
caminonuevo que
contiene la cadena de caracteres
caminoviejo.
A fin de encontrar un fichero o directorio, los enlaces simbólicos se
interpretan en tiempo de ejecución como si los contenidos del enlace
hubiesen sido sustituidos en el camino que se esté siguiendo.
Los enlaces simbólicos pueden contener como componentes del camino
.. y, si se emplean al principio del enlace, se refieren a los
directorios padre de aquél en el que reside el enlace.
Un enlace simbólico (también conocido como enlace blando) puede
apuntar a un fichero existente o a uno que no existe; en este último caso
se conoce como un enlace colgante.
Los permisos de un enlace simbólico son irrelevantes; el propietario no se
tiene en cuenta cuando se sigue el enlace, pero sí se comprueba cuando se
quiere borrar o renombrar el enlace y éste está en un directorio con
el bit pegajoso (STIcky) activado.
Si
caminonuevo existe,
no será sobreescrito.
VALOR DEVUELTO¶
En caso de éxito, se devuelve 0. En caso de error, se devuelve -1 y se pone
en
errno un valor apropiado.
ERRORES¶
- EPERM
- El sistema de ficheros que contiene caminonuevo no
admite la creación de enlaces simbólicos.
- EFAULT
- caminoviejo o caminonuevo apuntan afuera de
su espacio de direcciones accesible.
- EACCES
- No se permite acceso de escritura en el directorio que
contiene caminonuevo para el UID efectivo del proceso, o uno de los
directorios de caminonuevo no permite búsqueda (permiso de
ejecución, x).
- ENAMETOOLONG
- caminoviejo o caminonuevo eran muy
largos.
- ENOENT
- Un componente directorio en caminonuevo no existe o
es un enlace simbólico colgante, o caminoviejo es la cadena
vacía.
- ENOTDIR
- Un componente usado como directorio en caminonuevo
no es, de hecho, un directorio.
- ENOMEM
- No había bastante memoria del núcleo.
- EROFS
- caminonuevo está en un sistema de ficheros de
lectura exclusiva.
- EEXIST
- caminonuevo ya existe.
- ELOOP
- Se encontraron demasiados enlaces simbólicos al
resolver caminonuevo.
- ENOSPC
- El dispositivo que contiene al fichero no tiene sitio para
la nueva entrada de directorio.
- EIO
- Se ha producido un error de E/S.
OBSERVACIONES¶
No se hace ninguna comprobación sobre
caminoviejo.
Borrar el nombre referenciado por un enlace simbólico borrará
realmente el fichero (a menos que también tenga otros enlaces duros). Si
no se desea este comportamiento, emplee
link.
SVr4, SVID, POSIX, BSD 4.3, X/OPEN. SVr4 documenta los códigos de error
adicionales EDQUOT y ENOSYS.
FALLOS¶
Vea
open(2) con referencia a varios ficheros con el mismo nombre, y NFS.
VÉASE TAMBIÉN¶
readlink(2),
link(2),
unlink(2),
rename(2),
open(2),
lstat(2),
ln(1)