Scroll to navigation

SYMLINK(2) Manual del Programador de Linux SYMLINK(2)

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

El sistema de ficheros que contiene caminonuevo no admite la creación de enlaces simbólicos.
caminoviejo o caminonuevo apuntan afuera de su espacio de direcciones accesible.
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).
caminoviejo o caminonuevo eran muy largos.
Un componente directorio en caminonuevo no existe o es un enlace simbólico colgante, o caminoviejo es la cadena vacía.
Un componente usado como directorio en caminonuevo no es, de hecho, un directorio.
No había bastante memoria del núcleo.
caminonuevo está en un sistema de ficheros de lectura exclusiva.
caminonuevo ya existe.
Se encontraron demasiados enlaces simbólicos al resolver caminonuevo.
El dispositivo que contiene al fichero no tiene sitio para la nueva entrada de directorio.
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.

CONFORME A

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)

21 agosto 1997 Linux 2.0.30