REMOVE(3)

NOMBRE
remove - borra un nombre y posiblemente el fichero a que se refiere

SINOPSIS
#include <stdio.h>

int remove(const char *pathname);

DESCRIPCIÓN
remove borra un nombre del sistema de ficheros. La función llama a unlink para ficheros y a rmdir para directorios. Si el nombre borrado es el último enlace a un fichero y este no está abierto por ningún proceso, el fichero es borrado y el espacio que utilizaba queda disponible para ser reutilizado. Si el nombre es el último enlace a un fichero, pero algún proceso aún lo tiene abierto, el fichero sigue existiendo hasta que sea cerrado el último descriptor de fichero referente a él. Si el nombre se refiere a un enlace simbólico, se borra el enlace. Si el nombre se refiere a un enchufe (socket), fifo, o dispositivo, se borra el nombre, pero los procesos que tienen este objeto abierto pueden continuar usándolo.

VALOR DEVUELTO
Si hay éxito, se devuelve cero. Si ocurre un error, se devuelve -1, y errno se actualiza apropiadamente.

ERRORES

EFAULT
    pathname apunta fuera del espacio de direcciones accesible.

EACCES
    No se permite al uid efectivo del proceso el acceso de escritura al directorio que contiene pathname , o uno de los directorios en pathname no da permiso de búsqueda (ejecución).

EPERM
    El directorio que contiene pathname tiene el sticky-bit (S_ISVTX) puesto a 1, y el uid efectivo del proceso no es ni el uid del fichero a borra, ni el del directorio que lo contiene o pathname es un directorio.

ENAMETOOLONG
    pathname es demasiado largo.

ENOENT
    Un directorio componente en pathname no existe, o es un enlace simbólico colgado.

ENOTDIR
    Un componente usado como directorio en pathname no es, en realidad, un directorio.

ENOMEM
    No hay disponible suficiente memoria de núcleo.

EROFS
    pathname se refiere a un fichero en un sistema de ficheros de sólo lectura.

CONFORME A
ANSI C, SVID, AT&T, POSIX, X/OPEN, BSD 4.3

FALLOS
Algunos fallos desafortunados en el protocolo subyacente a NFS pueden causar la desaparición inesperada de ficheros que aún estaban siendo usados.

NOTA
Bajo libc4 y libc5, remove era un alias de unlink (y, por lo tanto, no eliminaba directorios).

VÉASE TAMBIÉN
unlink(2), rename(2), open(2), rmdir(2), mknod(2), mkfifo(3), link(2), rm(1), unlink(8).