Defined in header <filesystem>
path temp_directory_path();
path temp_directory_path( std::error_code& ec );
(1) (since C++17)

Returns the directory location suitable for temporary files.



Return value

A directory suitable for temporary files. The path is guaranteed to exist and to be a directory. The overload that takes error_code& argument returns an empty path on error.


The overload that does not take a std::error_code& parameter throws filesystem_error on underlying OS API errors, constructed with path to be returned as the first path argument and the OS error code as the error code argument. The overload taking a std::error_code& parameter sets it to the OS API error code if an OS API call fails, and executes ec.clear() if no errors occur. Any overload not marked noexcept may throw std::bad_alloc if memory allocation fails.


On POSIX systems, the path may be the one specified in the environment variables TMPDIR, TMP, TEMP, TEMPDIR, and, if none of them are specified, the path "/tmp" is returned.

On Windows systems, the path is typically the one returned by GetTempPath.


#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main()
    std::cout << "Temp directory is " << fs::temp_directory_path() << '\n';

Possible output:

Temp directory is "C:\Windows\TEMP\"

See also

creates and opens a temporary, auto-removing file

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.