Actualmente estoy trabajando en una aplicación de Android basada en NDK basada en C. Esta aplicación necesita crear archivos temporales. En un sistema Linux normal, usaría tmpfile
para asegurarme de que estos archivos se crean correctamente en un directorio temporal y se limpian al final del proceso.Creación de archivos temporales en Android con NDK
Sin embargo, mis investigaciones sobre diversos dispositivos Android parecen indicar que
tmpfile
siempre falla;- no hay directorio
/tmp
; - El directorio
/data/local/tmp
no está presente en todas las variantes de Android; - no hay
TEMP
conjunto de variables de entorno; mkstemp
no funciona mejor quetmpfile
.
ahora, estoy seguro de que podría hackear algo juntos, pero al ver que el SDK ofrece context.getCacheDir
y File.createTempFile
para aplicaciones Java, espero que no existe un equivalente en C-nivel.
¿Alguien sabe de un buen método confiable y cruzado de Android para crear un archivo temporal?
Es posible utilizar 'libcore' para llamar a' setenv() ', ver http://stackoverflow.com/a/22315463/192373. Esta puede ser una forma más elegante de mostrar el nombre del directorio de caché a nativo. –