SINOPSIS
#include <unistd.h>int unlink(const char *pathname);
DESCRIPCIÓN
unlink borra un nombre del sistema de ficheros. Si dicho nombre era el último enlace a un fichero, y ningún proceso tiene el fichero abierto, el fichero es borrado y el espacio que ocupaba vuelve a estar disponible.Si el nombre era el último enlace a un fichero, pero algún proceso sigue teniendo el fichero abierto, el fichero seguirá existiendo hasta que el último descriptor de fichero referente a él sea cerrado.
Si el nombre hacía referencia a un enlace simbólico, el enlace es eliminado.
Si el nombre hacía referencia a un socket, fifo o dispositivo, el nombre es eliminado, pero los procesos que tengan el objeto abierto pueden continuar usándolo.
VALOR DEVUELTO
En caso de éxito, se devuelve cero. En caso de error, se devuelve -1 y se establece el errno apropiado.ERRORES
- EACCES
- No se otorga permiso de escritura para el directorio contenido en pathname al identificador de usuario efectivo del proceso, o uno de los directorios de pathname no permite búsquedas (no tiene permiso de ejecución).
- EPERM o EACCES
- El directorio contenido en pathname tiene puesto el sticky-bit (S_ISVTX), y el identificador de usuario efectivo del proceso no es el identificador de usuario del fichero a borrar ni el del directorio que lo contiene.
- EPERM (sólo para Linux)
- El sistema de ficheros no permite el borrado de ficheros.
- EPERM
- El sistema no permite el borrado de directorios, o el borrado de directorios requiere privilegios que el proceso actual no tiene. (Esta es el código de error recomendado por POSIX.)
- EISDIR
- pathname hace referencia a un directorio. (Este es el valor no conforme con POSIX devuelto por Linux desde la versión 2.1.132.)
- EBUSY (no en Linux)
- El fichero pathname no puede ser borrado porque está siendo usado por el sistema o por otro proceso y la implementación considera ésto un error.
- EFAULT
- pathname apunta fuera del espacio de direcciones accesible.
- ENAMETOOLONG
- pathname es demasiado largo.
- ENOENT
- Un elemento en pathname no existe o es un enlace simbólico colgado, o pathname está vacío.
- ENOTDIR
- Un elemento usado como directorio en pathname no es en realidad un directorio.
- ENOMEM
- No hay suficiente memoria disponible en el núcleo.
- EROFS
- pathname hace referencia a un fichero de un sistema de ficheros de sólo lectura.
- ELOOP
- Se encontraron demasiados enlaces simbólicos al traducir pathname.
- EIO
- Ocurrió un error de E/S.