pagina - linux versiones
¿Cómo encuentro el directorio ''temp'' en Linux? (5)
En la norma c, podrías intentar: P_tmpdir
¿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.
Use el valor de la variable de entorno $ TMPDIR, y si eso no existe, use /tmp
.
Editar: Punto justo del comentarista. tmpnam
no es una buena opción en estos días; use mktemp
/ mkstemp
en mkstemp
lugar.
Respuesta histórica: Sea compatible con POSIX y use tmpnam (que le dará un nombre de archivo completo en una ubicación temporal).
Ver las siguientes variables:
- La variable de entorno
TMPDIR
- El valor de la macro
P_tmpdir
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 aceptada, específicamente desde el punto de vista de GNU, es:
- Compruebe la variable de entorno TMPDIR ( getenv ("TMPDIR") ) solo si el programa no se está ejecutando como SUID / SGID ( issetugid () == 0 )
- De lo contrario, use P_tmpdir si está definido y es válido
- y finalmente, si estos fallan, use _PATH_TMP disponible en paths.h
Si está agregando una extensión o módulo, verifique si el núcleo proporciona una función para este fin. Por ejemplo, PHP exporta php_get_temporary_directory () desde main / php_open_temporary_file.h.