CINXE.COM

tmpnam

<html> <head> <title>tmpnam</title> <META NAME="KEYWORDS" CONTENT="tmpnam"> </head> <body BGCOLOR="#ffffff" LINK="#0000ff" VLINK="#0000ff" ALINK="#0000ff" TEXT="#000000"> <center> <h1><b>tmpnam</b></h1></center> <PRE> <STRONG><A HREF="/man3/TMPNAM">TMPNAM(3)</A></STRONG> Linux Programmer's Manual <STRONG><A HREF="/man3/TMPNAM">TMPNAM(3)</A></STRONG> NAME tmpnam, tmpnam_r - create a name for a temporary file SYNOPSIS #include &lt;stdio.h&gt; char *tmpnam(char *s); char *tmpnam_r(char *s); Feature Test Macro Requirements for glibc (see <STRONG><A HREF="/man7/feature_test_macros">feature_test_macros(7)</A></STRONG>): tmpnam_r() Since glibc 2.19: _DEFAULT_SOURCE Up to and including glibc 2.19: _BSD_SOURCE || _SVID_SOURCE DESCRIPTION Note: avoid using these functions; use <STRONG><A HREF="/man3/mkstemp">mkstemp(3)</A></STRONG> or <STRONG><A HREF="/man3/tmpfile">tmpfile(3)</A></STRONG> in- stead. 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 gener- ated 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 charac- ter array (of length at least L_tmpnam) pointed to by s and the value s is returned in case of success. The created pathname has a directory prefix P_tmpdir. (Both L_tmpnam and P_tmpdir are defined in &lt;stdio.h&gt;, just like the TMP_MAX mentioned below.) The tmpnam_r() function performs the same task as tmpnam(), but returns NULL (to indicate an error) if s is NULL. RETURN VALUE These functions return a pointer to a unique temporary filename, or NULL if a unique name cannot be generated. ERRORS No errors are defined. ATTRIBUTES For an explanation of the terms used in this section, see at- <STRONG><A HREF="/man7/tributes">tributes(7)</A></STRONG>. +-----------+---------------+--------------------------+ |Interface | Attribute | Value | +-----------+---------------+--------------------------+ |tmpnam() | Thread safety | MT-Unsafe race:tmpnam/!s | +-----------+---------------+--------------------------+ |tmpnam_r() | Thread safety | MT-Safe | +-----------+---------------+--------------------------+ CONFORMING TO tmpnam(): SVr4, 4.3BSD, C89, C99, POSIX.1-2001. POSIX.1-2008 marks tmpnam() as obsolete. tmpnam_r() is a nonstandard extension that is also available on a few other systems. NOTES 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 these functions generate names that are difficult to guess, it is nevertheless possible that between the time that the pathname is re- turned and the time that the program opens it, another program might create that pathname using <STRONG><A HREF="/man2/open">open(2)</A></STRONG>, or create it as a symbolic link. This can lead to security holes. To avoid such possibilities, use the <STRONG><A HREF="/man2/open">open(2)</A></STRONG> O_EXCL flag to open the pathname. Or better yet, use mk- <STRONG><A HREF="/man3/stemp">stemp(3)</A></STRONG> or <STRONG><A HREF="/man3/tmpfile">tmpfile(3)</A></STRONG>. Portable applications that use threads cannot call tmpnam() with a NULL argument if either _POSIX_THREADS or _POSIX_THREAD_SAFE_FUNCTIONS is defined. BUGS Never use these functions. Use <STRONG><A HREF="/man3/mkstemp">mkstemp(3)</A></STRONG> or <STRONG><A HREF="/man3/tmpfile">tmpfile(3)</A></STRONG> instead. SEE ALSO <STRONG><A HREF="/man3/mkstemp">mkstemp(3)</A></STRONG>, <STRONG><A HREF="/man3/mktemp">mktemp(3)</A></STRONG>, <STRONG><A HREF="/man3/tempnam">tempnam(3)</A></STRONG>, <STRONG><A HREF="/man3/tmpfile">tmpfile(3)</A></STRONG> COLOPHON This page is part of release 5.05 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/. 2017-09-15 <STRONG><A HREF="/man3/TMPNAM">TMPNAM(3)</A></STRONG></PRE> <center> <h6>Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2025 <a href="http://www.he.net">Hurricane Electric</a>. All Rights Reserved.</h6></center> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10