¿Cómo suelen eliminar archivos en el sistema operativo Linux? Estoy pensando en usar la llamada a la función unlink
, pero me pregunto si tiene una mejor idea, ya que el estándar C++ no menciona la operación de eliminación de archivos y depende del sistema.Eliminar archivo en C++ bajo UNIX
Respuesta
Sí, el estándar C++ deja esto al sistema operativo, por lo que si está en Linux (o en cualquier sistema POSIX), unlink()
es lo que tiene.
El estándar C proporciona remove()
, que podría intentar, pero tenga en cuenta que su behavior is unspecified para otra cosa que un 'archivo normal', por lo que en realidad no te proteja de entrar en detalles específicos de la plataforma del sistema de archivos (enlaces , etc.)
Si desea algo de mayor nivel, más robusto y más portátil, consulte Boost Filesystem.
unlink es la forma correcta de hacerlo.
El estándar incluye una función llamada remove que hace eso. Aunque preferiría boost.filesystem
para eso (si ya uso boost de todos modos).
#include <cstdio>
int main() {
std::remove("/home/js/file.txt");
}
unlink()
está definido por las normas POSIX, y por lo tanto existirá en cualquier sistema compatible con POSIX, y en un buen número que no son compatibles con POSIX también.
Tenga en cuenta que los núcleos recientes también ofrecen unlinkat
. Esta función es más rápida que unlink
si tiene un descriptor de archivo en el directorio.
- 1. Abrir un archivo en Unix usando C++
- 2. Eliminar un archivo en C
- 3. Lea el archivo codificado UNIX con C#
- 4. Eliminar nodos específicos bajo la raíz XML?
- 5. Eliminar archivo usando C# Hilo
- 6. .Net archivo app.config ignorado cuando bajo c: \ ProgramFiles \
- 7. unix redirigir cola al archivo
- 8. ¿cómo examinar el archivo C++ .o bajo Linux?
- 9. UNIX - recuento de columnas en el archivo
- 10. qué es un archivo normal en unix
- 11. Cómo eliminar un archivo con Visual C++?
- 12. Eliminar todo en un directorio excepto un archivo en C#
- 13. es palabra clave restringida "unix" en C?
- 14. Análisis del tiempo de Unix en C#
- 15. Implementando tuberías en un caparazón C (Unix)
- 16. OAuth 2.0 en C++ (para UNIX)
- 17. Programación Bluetooth de bajo nivel en C++
- 18. restauración de DST bajo Linux en C
- 19. ¿Bajo qué contexto estoy corriendo en C#?
- 20. Cadena para Más Bajo/Superior en C++
- 21. Archivo ejecutable generado usando GCC bajo cygwin
- 22. función "MoveFile" en C# (Eliminar archivo después de reiniciar)
- 23. Eliminar una línea de un archivo en C Idioma
- 24. Eliminar líneas que están entre patrones dados de un archivo (usando herramientas de Unix)
- 25. Script de Unix para eliminar la primera línea de un archivo CSV
- 26. Tiempo de modificación del archivo (segundos) en Unix
- 27. Eliminar nueva línea del final del archivo
- 28. Archivo de cookies para Google Chrome/Unix
- 29. Nombre de archivo globbing Windows contra Unix
- 30. Listado de funciones C/C++ (Análisis de código en Unix)
Uso remove() en todos mis códigos: la portabilidad es importante para algunos de nosotros. –
remove se especifica de hecho en POSIX para ser equivalente a unlink para no-directorios. – Random832