GNU (3)
13 julio 1994
 

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).

Nuevo comentario