LINUX.ORG.RU

NOTES POSIX.1-2001 specifies: an error message may be written to stdout if the stream cannot be opened.

The standard does not specify the directory that tmpfile() will use. Glibc will try the path prefix P_tmpdir defined in <stdio.h>, and if that fails the directory /tmp.

alex_custov ★★★★★
()

еще есть переменная окружения TMPDIR, может с ней консультируется?

dilmah ★★★★★
()
Ответ на: комментарий от alex_custov

Ясно, что все не однозначно. Решил ориентироваться на tmpnam() которая возвращает уникальное имя для временного файла. Судя по пути который она возвращает /tmp/fileiUwS4s искомый каталог все-таки /tmp. Очень надеюсь что tmpfile() и tmpnam() используют одну директорию.

T-34
() автор топика
Ответ на: комментарий от T-34

Ну, используй тогда mkstemp(3), если нужен определённый путь к файлу

alex_custov ★★★★★
()

Ой, не надо об этом думать. Это непереносимо во всех смыслах.

ip1981 ☆☆
()
Ответ на: комментарий от irishka

Архиправильный ответ.

Вот вам наводящие соображения. Чаще всего, tmpfile() системный вызов UNIX использует следующий алгоритм: 1) tmpnam() вызываем, дабы получить имя. 2) создаем двоичный файл с этим именем. 3) тут же делаем ему unlink()-так, чтоб только процессу, создавшему его, он был виден.

Так что вы его найдете через lsof, а вот так, из другого процесса-вряд ли.

Вообще, писать лишнего не хочется-загляните в APUE 2e, глава про временные файлы. Там все это есть.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.