Reputation: 391
How do I find the 'temp' directory in Linux? I am writing a platform neutral C++ function that returns the temp directory. In Mac and Windows, there is an API that returns these results. In Linux, I'm stumped.
Upvotes: 39
Views: 80897
Reputation: 71
Yes you could find it using the environment variable TMPDIR
.
However it is not always defined.
The question is not about creating a temporary folder but find the existing one.
dirname "$(mktemp --dry-run)"
This should give you the top most temporary folder.
Upvotes: 0
Reputation: 670
The accepted sequence, specifically from a GNU standpoint, is:
If you are adding an extension or module, check to see if the core provides a function for this purpose. For example, PHP exports php_get_temporary_directory() from main/php_open_temporary_file.h.
Upvotes: 11
Reputation: 6298
Check following variables:
TMPDIR
P_tmpdir
macroIf all fails try to use the directory /tmp
.
You can also use tempnam
function to generate a unique temporary file name.
Upvotes: 32
Reputation: 49376
Edit: Fair point from the commenter. tmpnam
isn't a good choice these days; use mktemp
/mkstemp
instead.
Historical answer: Be POSIX compliant, and use tmpnam (which will give you a full filename in a temporary location).
Upvotes: 20
Reputation: 993105
Use the value of the $TMPDIR environment variable, and if that doesn't exist, use /tmp
.
Upvotes: 12