char *tmpnam(char *s);
The tmpnam() function returns a pointer to a string that is a valid
filename, and such that a file with this name did not exist at some
point in time, so that naive programmers may think it a suitable name
for a temporary file. If the argument s is NULL this name is generated
in an internal static buffer and may be overwritten by the next call to
tmpnam(). If s is not NULL, the name is copied to the character array
(of length at least L_tmpnam) pointed to by s and the value s is
returned in case of success.
The pathname that is created, has a directory prefix P_tmpdir. (Both
L_tmpnam and P_tmpdir are defined in <stdio.h>, just like the TMP_MAX
The tmpnam() function returns a pointer to a unique temporary filename,
or NULL if a unique name cannot be generated.
No errors are defined.
Multithreading (see pthreads(7))
The tmpnam() function is thread-safe with exceptions. It is not
thread-safe if called with a NULL parameter.
The tmpnam_r() function is thread-safe.
SVr4, 4.3BSD, C89, C99, POSIX.1-2001. POSIX.1-2008 marks tmpnam() as
The tmpnam() function generates a different string each time it is
called, up to TMP_MAX times. If it is called more than TMP_MAX times,
the behavior is implementation defined.
Although tmpnam() generates names that are difficult to guess, it is
nevertheless possible that between the time that tmpnam() returns a
pathname, and the time that the program opens it, another program might
create that pathname using open(2), or create it as a symbolic link.
This can lead to security holes. To avoid such possibilities, use the
open(2) O_EXCL flag to open the pathname. Or better yet, use
mkstemp(3) or tmpfile(3).
Portable applications that use threads cannot call tmpnam() with a NULL
argument if either _POSIX_THREADS or _POSIX_THREAD_SAFE_FUNCTIONS is
Never use this function. Use mkstemp(3) or tmpfile(3) instead.
mkstemp(3), mktemp(3), tempnam(3), tmpfile(3)
This page is part of release 3.54 of the Linux man-pages project. A
description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2018
All Rights Reserved.