Obecnie pracuję nad opartą na C, opartą na NDK aplikacją na Androida. Ta aplikacja musi utworzyć pliki tymczasowe. W zwykłym systemie Linux użyłbym tmpfile
, aby zapewnić, że pliki te są poprawnie tworzone w katalogu tymczasowym i czyszczone po zakończeniu procesu.Tworzenie plików tymczasowych w systemie Android przy użyciu NDK
Jednak moje badania na różnych urządzeniach z Androidem wydają się wskazywać, że
tmpfile
zawsze kończy się niepowodzeniem;- nie ma katalogu
/tmp
; - katalog
/data/local/tmp
nie występuje we wszystkich wariantach Androida; - nie ma zestawu zmiennych środowiskowych;
mkstemp
nie działa lepiej niżtmpfile
.
Teraz jestem pewien, że mogę siekać coś razem, ale widząc, że SDK oferuje context.getCacheDir
i File.createTempFile
dla aplikacji Java, mam nadzieję, że istnieje odpowiednik w C-poziom.
Czy ktoś wie o dobrej niezawodnej i wielozadaniowej metodzie tworzenia tymczasowego pliku?
Możliwe jest użycie 'libcore' do wywołania' setenv() ', patrz http://stackoverflow.com/a/22315463/192373. Może to być bardziej elegancki sposób na pokazanie nazwy katalogu pamięci podręcznej na natywny. –