Merge "libbase: fix the way to find temp dir."

This commit is contained in:
Yabin Cui 2017-02-14 00:29:39 +00:00 committed by Gerrit Code Review
commit b13d4a31a3
1 changed files with 7 additions and 1 deletions

View File

@ -57,7 +57,13 @@ char* mkdtemp(char* template_name) {
static std::string GetSystemTempDir() {
#if defined(__ANDROID__)
return "/data/local/tmp";
const char* tmpdir = "/data/local/tmp";
if (access(tmpdir, R_OK | W_OK | X_OK) == 0) {
return tmpdir;
}
// Tests running in app context can't access /data/local/tmp,
// so try current directory if /data/local/tmp is not accessible.
return ".";
#elif defined(_WIN32)
char tmp_dir[MAX_PATH];
DWORD result = GetTempPathA(sizeof(tmp_dir), tmp_dir);