How do I find the 'temp' directory in Linux?

前端 未结 5 948
再見小時候
再見小時候 2020-12-05 09:35

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

相关标签:
5条回答
  • 2020-12-05 10:08

    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).

    0 讨论(0)
  • 2020-12-05 10:13

    In standard c, you could try: P_tmpdir

    0 讨论(0)
  • 2020-12-05 10:24

    Check following variables:

    • The environment variable TMPDIR
    • The value of the P_tmpdir macro

    If all fails try to use the directory /tmp.

    You can also use tempnam function to generate a unique temporary file name.

    0 讨论(0)
  • 2020-12-05 10:24

    The accepted sequence, specifically from a GNU standpoint, is:

    1. Check the environmental variable TMPDIR (getenv("TMPDIR")) only if the program is not running as SUID/SGID (issetugid() == 0)
    2. Otherwise use P_tmpdir if it is defined and is valid
    3. and finally, should those fail, use _PATH_TMP available from paths.h

    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.

    0 讨论(0)
  • 2020-12-05 10:28

    Use the value of the $TMPDIR environment variable, and if that doesn't exist, use /tmp.

    0 讨论(0)
提交回复
热议问题