Estoy escribiendo una función en C++ que crea un directorio temporal. Dicha función debe ser lo más portátil posible, p. debería funcionar en entornos linux, mac y win32. ¿Cómo logro eso?¿Cómo crear un directorio temporal en C++?
Respuesta
mkdtemp(char *template)
http://www.cl.cam.ac.uk/cgi-bin/manpage?3+mkdtemp
crea un directorio temporal.
Seguí su enlace de documentación. Solo describe cómo crear un archivo temporal. Lo que se solicitó es cómo crear un directorio temporal. –
@ ErikSjölund estás en lo correcto, he vinculado el comando incorrecto. –
No hay una función estándar para hacer esto, por lo que deberá compilar diferentes implementaciones para cada plataforma a la que se dirija.
En Windows, por ejemplo, debe usar el directorio temporal, que puede obtenerse mediante una llamada a GetTempPath().
Boost's Filesystem library proporciona funciones de directorio independientes de la plataforma. Aumentará un poco el tamaño de su programa, pero usar Boost suele ser mejor (y con frecuencia más fácil) que el propio.
http://www.boost.org/doc/libs/1_43_0/libs/filesystem/doc/index.htm
No quiero introducir la dependencia en boost solo para ese. – Gatis
La versión 3 del sistema de archivos Biblioteca Boost proporciona la función de unique_path()
para generar un nombre de ruta adecuada para crear un archivo temporal o directorio.
using namespace boost::filesystem;
path ph = unique_path();
create_directories(ph);
- 1. ¿Cómo crear un directorio temporal en hormiga?
- 2. Crear un directorio temporal en Haskell
- 3. Creando un directorio temporal único de C puro en Windows
- 4. ¿Cómo crear un archivo temporal (para escribir en) en C#?
- 5. ¿Cómo crear un archivo de texto temporal en C++?
- 6. ¿Cómo puedo crear automáticamente (y eliminar) un directorio temporal en un Makefile?
- 7. ¿Se puede crear el archivo temporal de flymake en el directorio temporal del sistema?
- 8. ¿Cómo crear un std :: ofstream en un archivo temporal?
- 9. Cómo crear un directorio temporal y recibe el nombre de ruta/archivo en Python
- 10. Operación temporal en un directorio temporal en el script de shell
- 11. ¿Cómo crear un directorio en wix?
- 12. ¿Cómo crear recursivamente un directorio en Qt?
- 13. ¿Cómo crear un directorio en Lua?
- 14. Crear tabla temporal en Hive?
- 15. Crear carpetas automáticamente en el directorio C#
- 16. C++ cómo crear un directorio desde una ruta
- 17. Cómo crear un enlace a un directorio
- 18. ¿Cómo puedo crear un archivo temporal para escribir en C++ en una plataforma Linux?
- 19. Acceso denegado al directorio temporal de ASP.NET
- 20. ¿Cómo guardar imágenes y archivos grabados en el directorio temporal?
- 21. Crear vista temporal desde una tabla temporal en SQL Server
- 22. iOS: ¿Cuál es una forma segura de crear un directorio temporal?
- 23. Inicio de sesión en el directorio temporal de manera multiplataforma
- 24. ¿Cómo crear un archivo temporal con codificación Unicode?
- 25. Cómo crear una función temporal en Emacs Lisp
- 26. Cómo crear un archivo temporal (0x100) para acelerar la aplicación
- 27. Cómo crear una carpeta/directorio
- 28. ¿Cómo se define la ubicación del directorio temporal de Tomcat?
- 29. Cómo crear un directorio utilizando nerdtree
- 30. ¿Cómo crear un directorio usando StreamWriter?
Estándar C++ no tiene funciones de manipulación de directorios. –
El estándar POSIX tiene una definición. Todos los sistemas operativos modernos tienen una capa de cumplimiento POSIX (incluidas las ventanas). Entonces, la familia de funciones mktemp() es lo que estás buscando. Pero ten cuidado es una vulnerabilidad de seguridad para crear un directorio temporal y luego colocar archivos en él. Es más seguro crear descripciones de archivos directamente. –
¿Qué pasa con getenv() que pasa "TMP"? – Gatis