x SuSE Linux 13.1-RELEASE x x SuSE Linux 13.1-RELEASEx tmpnam(3) Library Functions Manual tmpnam(3) NAME tmpnam, tmpnam_r - create a name for a temporary file LIBRARY Standard C library (libc, -lc) SYNOPSIS #include <stdio.h> [[deprecated]] char *tmpnam(char *s); [[deprecated]] char *tmpnam_r(char *s); Feature Test Macro Requirements for glibc (see feature_test_macros(7)): 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 mkstemp(3) or tmpfile(3) 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 <stdio.h>, 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- tributes(7). +---------------------------+---------------+--------------------------+ |Interface | Attribute | Value | +---------------------------+---------------+--------------------------+ |tmpnam() | Thread safety | MT-Unsafe race:tmpnam/!s | +---------------------------+---------------+--------------------------+ |tmpnam_r() | Thread safety | MT-Safe | +---------------------------+---------------+--------------------------+ STANDARDS tmpnam() C11, POSIX.1-2008. tmpnam_r() None. HISTORY tmpnam() SVr4, 4.3BSD, C89, POSIX.1-2001. Obsolete in POSIX.1-2008. tmpnam_r() Solaris. 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 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 mk- stemp(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 defined. BUGS Never use these functions. Use mkstemp(3) or tmpfile(3) instead. SEE ALSO mkstemp(3), mktemp(3), tempnam(3), tmpfile(3) Linux man-pages 6.04 2023-03-30 tmpnam(3)
Want to link to this manual page? Use this URL:
<http://star2.abcm.com/cgi-bin/bsdi-man?query=tmpnam&sektion=3&manpath=>