¿Cómo encuentro el directorio 'temp' en Linux? Estoy escribiendo una función C++ neutral de plataforma que devuelve el directorio temporal. En Mac y Windows, hay una API que devuelve estos resultados. En Linux, estoy perplejo. ¿Cómo encuentro el directorio 'temp' en Linux?
Respuesta
En C estándar, usted podría intentar: P_tmpdir
Utilice el valor de la variable de entorno $ TMPDIR, y si eso no existe, utilice /tmp
.
Editar: Punto justo del comentarista. tmpnam
no es una buena opción en estos días; use mktemp
/mkstemp
en su lugar.
Respuesta histórica: Sea compatible con POSIX y use tmpnam (que le dará un nombre de archivo completo en una ubicación temporal).
comprobarse los siguientes variables:
- la variable de entorno
TMPDIR
- El valor de la
P_tmpdir
macro
Si todo falla intente utilizar el directorio /tmp
.
También puede usar la función tempnam
para generar un nombre de archivo temporal único.
La secuencia aceptado, concretamente desde el punto de vista de GNU, es decir:
- compruebe la variable ambiental TMPDIR (getenv ("TMPDIR")) sólo si el programa no se está ejecutando como SUID/SGID (issetugid() == 0)
- utilizar lo contrario P_tmpdir si está definida y es válido
- y, por último, debe aquellos fallar, utilice _PATH_TMP disponible de paths.h
Si va a añadir una extensión o módulo, comprobar para ver si el núcleo proporciona una función para este propósito. Por ejemplo, PHP exporta php_get_temporary_directory() desde main/php_open_temporary_file.h.
- 1. ¿Cómo encuentro el directorio actual?
- 2. En Linux, ¿cómo encuentro el directorio con la mayoría de los subdirectorios o archivos?
- 3. Detalles del directorio de Windows temp (Java)
- 4. Directorio JAVA_HOME en Linux
- 5. ¿Cómo verificar el directorio existe o no en Linux.?
- 6. ¿Cómo encuentro el último archivo modificado en un directorio en Java?
- 7. Redhat Linux - cambie el color del directorio
- 8. Linux fork/exec a la aplicación en el mismo directorio
- 9. Busque el archivo y cd a ese directorio en Linux
- 10. % temp% etc no funciona
- 11. Obtener directorio de inicio en Linux, C++
- 12. DirectoryExists ("c: temp \\ foo") devuelve verdadero cuando el directorio no existe!
- 13. ¿Dónde colocar el directorio de repositorio SVN en Linux?
- 14. cambiar el directorio actual en Linux usando C++
- 15. ¿Cómo debo usar Perl's File :: Temp?
- 16. ¿Cómo encuentro el menú "Preferencias" en Eclipse en OS X?
- 17. ¿Cómo encuentro los manejadores de archivos que mi proceso ha abierto en Linux?
- 18. Cómo SELECCIONAR [temp table1] = [subselect 1], [temp table2] = [subselect 2] FROM [Procedimiento almacenado]
- 19. No encuentro el archivo debug.keystore
- 20. CMake con el diseño del directorio "estándar" (Linux)
- 21. Comando de Linux para mover un directorio
- 22. ¿Cómo encuentro duplicados en varias columnas?
- 23. No se ha podido cambiar el nombre de herramientas de directorio a temp \ ToolPackage.old01 en C: \ android-sdk-windows
- 24. ¿Cómo encuentro el funcionamiento de Traces en SQL Server?
- 25. ¿Cómo encuentro el índice de un elemento en un vector?
- 26. ¿Cómo encuentro los protocolos implementados en el objeto Clojure?
- 27. ¿Cómo encuentro el modo actualmente cargado (sintaxis) en Ace Editor?
- 28. Impedir que .NET escriba en C: \ Windows \ Temp
- 29. ¿Cómo obtengo de manera programática el espacio libre en disco para un directorio en Linux?
- 30. ¿Cómo puedo encontrar todos los archivos * .js en el directorio recursivamente en Linux?
La página man de linux que tengo para tmpnam dice en su sección BUGS: "Nunca use esta función. Use mkstemp o tmpfile" – ergosys
Recibo la misma advertencia en mktemp linux [man page] (http: // man7) .org/linux/man-pages/man3/mktemp.3.html). Y no tengo los comandos 'mkstemp' o' tmpfile' (en OSX). – kentcdodds
mkstemp no lo ayuda a descubrir qué directorio usar. – andrewrk