В большинстве Unix-подобных систем вы бы искали /tmp
. Если это не совсем тот ответ, который вы получили, вы должны указать , какой бит Ubuntu, о котором вы говорите.
Некоторые приложения позволят вам указать, куда помещаются их временные файлы (например, с переменными окружения TMP
, TEMP
или TMPDIR
), но многие вещи могут сломаться в UNIX, если /tmp
didn ' не существует, так что безопасно просто использовать это. Если вы хотите сделать его настраиваемым, в своем коде вы должны использовать что-то вроде функции getTmpDir()
в следующей полной программе:
#include <stdio.h>
#include <stdlib.h>
const char *getTmpDir (void) {
char *tmpdir;
if ((tmpdir = getenv ("TEMP")) != NULL) return tmpdir;
if ((tmpdir = getenv ("TMP")) != NULL) return tmpdir;
if ((tmpdir = getenv ("TMPDIR")) != NULL) return tmpdir;
return "/tmp";
}
int main(void) {
const char *xyzzy = getTmpDir();
printf ("Temporary directory = %s\n", xyzzy);
return 0;
}
, который выводит, в моей среде CygWin (у меня оба значения TEMP
и TMP
установлены на это значение):
Temporary directory = /cygdrive/c/Users/Pax/AppData/Local/Temp
Это в значительной степени то, что делает вызов GLib g_get_tmp_dir()
, хотя, возможно, в другом порядке.
Конечно, если вы хотите использовать переменную окружения, специфичную для приложения, вы можете поставить ее перед другими так:
const char *getTmpDir (void) {
char *tmpdir;
if ((tmpdir = getenv ("XYZZY_TMP")) != NULL) return tmpdir;
if ((tmpdir = getenv ("TEMP")) != NULL) return tmpdir;
if ((tmpdir = getenv ("TMP")) != NULL) return tmpdir;
if ((tmpdir = getenv ("TMPDIR")) != NULL) return tmpdir;
return "/tmp";
}
Или даже убрать некоторые или все "стандартные". Но вы должны всегда возвращаться к /tmp
, если пользователь ничего не настроил.