table of contents
std::tmpnam(3) | C++ Standard Libary | std::tmpnam(3) |
NAME¶
std::tmpnam - std::tmpnam
Synopsis¶
Defined in header <cstdio>
char* tmpnam( char* filename );
Creates a unique filename that does not name a currently existing file, and
stores
it in the character string pointed to by filename. The function is capable of
generating up to TMP_MAX of unique filenames, but some or all of them may
already be
in use, and thus not suitable return values.
std::tmpnam modifies static state and is not required to be thread-safe.
Parameters¶
pointer to the character array capable of holding at least
L_tmpnam
filename - bytes, to be used as a result buffer. If a null pointer is passed,
a
pointer to an internal static buffer is returned
Return value¶
filename if filename was not a null pointer. Otherwise a pointer
to an internal
static buffer is returned. If no suitable filename can be generated, a null
pointer
is returned.
Notes¶
Although the names generated by std::tmpnam are difficult to
guess, it is possible
that a file with that name is created by another process between the moment
std::tmpnam returns and the moment this program attempts to use the returned
name to
create a file. The standard function std::tmpfile and the POSIX function
mkstemp do
not have this problem (creating a unique directory using only the standard C
library
still requires the use of tmpnam).
POSIX systems additionally define the similarly named function tempnam, which
offers
the choice of a directory (which defaults to the optionally defined macro
P_tmpdir).
Example¶
// Run this code
#include <cstdio>
#include <iostream>
#include <string>
int main()
{
std::string name1 = std::tmpnam(nullptr);
std::cout << "temporary file name: " << name1 <<
'\n';
char name2[L_tmpnam];
if (std::tmpnam(name2))
std::cout << "temporary file name: " << name2 <<
'\n';
}
Possible output:¶
temporary file name: /tmp/fileDjwifs
temporary file name: /tmp/fileEv2bfW
See also¶
tmpfile creates and opens a temporary, auto-removing file
(function)
temp_directory_path returns a directory suitable for temporary files
(C++17) (function)
C documentation for
tmpnam
2024.06.10 | http://cppreference.com |