Movatterモバイル変換


[0]ホーム

URL:


man7.org > Linux >man-pages

Linux/UNIX system programming training


tmpnam(3) — Linux manual page

NAME |LIBRARY |SYNOPSIS |DESCRIPTION |RETURN VALUE |ERRORS |ATTRIBUTES |STANDARDS |HISTORY |NOTES |BUGS |SEE ALSO |COLOPHON

tmpnam(3)                Library Functions Manualtmpnam(3)

NAME        top

       tmpnam, tmpnam_r - create a name for a temporary file

LIBRARY        top

       Standard C library (libc,-lc)

SYNOPSIS        top

#include <stdio.h>[[deprecated]] char *tmpnam(char *s);[[deprecated]] char *tmpnam_r(char *s);   Feature Test Macro Requirements for glibc (seefeature_test_macros(7)):tmpnam_r()           Since glibc 2.19:               _DEFAULT_SOURCE           Up to and including glibc 2.19:               _BSD_SOURCE || _SVID_SOURCE

DESCRIPTION        top

Note:avoid using these functions; usemkstemp(3) ortmpfile(3)       instead.       Thetmpnam() 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 arguments is NULL,       this name is generated in an internal static buffer and may be       overwritten by the next call totmpnam().  Ifs is not NULL, the       name is copied to the character array (of length at leastL_tmpnam) pointed to bys and the values is returned in case of       success.       The created pathname has a directory prefixP_tmpdir.  (BothL_tmpnam andP_tmpdir are defined in<stdio.h>, just like theTMP_MAXmentioned below.)       Thetmpnam_r() function performs the same task astmpnam(), but       returns NULL (to indicate an error) ifs is NULL.

RETURN VALUE        top

       These functions return a pointer to a unique temporary filename,       or NULL if a unique name cannot be generated.

ERRORS        top

       No errors are defined.

ATTRIBUTES        top

       For an explanation of the terms used in this section, seeattributes(7).       ┌─────────────────────┬───────────────┬──────────────────────────┐       │InterfaceAttributeValue│       ├─────────────────────┼───────────────┼──────────────────────────┤       │tmpnam()            │ Thread safety │ MT-Unsafe race:tmpnam/!s │       ├─────────────────────┼───────────────┼──────────────────────────┤       │tmpnam_r()          │ Thread safety │ MT-Safe                  │       └─────────────────────┴───────────────┴──────────────────────────┘

STANDARDS        top

tmpnam()              C11, POSIX.1-2008.tmpnam_r()              None.

HISTORY        top

tmpnam()              SVr4, 4.3BSD, C89, POSIX.1-2001.  Obsolete in POSIX.1-2008.tmpnam_r()              Solaris.

NOTES        top

       Thetmpnam() function generates a different string each time it is       called, up toTMP_MAXtimes.  If it is called more thanTMP_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 returned and the time that the program opens it,       another program might create that pathname usingopen(2), or       create it as a symbolic link.  This can lead to security holes.       To avoid such possibilities, use theopen(2)O_EXCLflag to open       the pathname.  Or better yet, usemkstemp(3) ortmpfile(3).       Portable applications that use threads cannot calltmpnam() with a       NULL argument if either_POSIX_THREADSor_POSIX_THREAD_SAFE_FUNCTIONSis defined.

BUGS        top

       Never use these functions.  Usemkstemp(3) ortmpfile(3) instead.

SEE ALSO        top

mkstemp(3),mktemp(3),tempnam(3),tmpfile(3)

COLOPHON        top

       This page is part of theman-pages (Linux kernel and C library       user-space interface documentation) project.  Information about       the project can be found at        ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report       for this manual page, see       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.       This page was obtained from the tarball man-pages-6.15.tar.gz       fetched from       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on       2025-08-11.  If you discover any rendering problems in this HTML       version of the page, or you believe there is a better or more up-       to-date source for the page, or you have corrections or       improvements to the information in this COLOPHON (which isnot       part of the original manual page), send a mail to       man-pages@man7.orgLinux man-pages 6.15            2025-05-17tmpnam(3)

Pages that refer to this page:getpid(2)mkdtemp(3)mkstemp(3)mktemp(3)stdio(3)tempnam(3)tmpfile(3)



HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface.

For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere.

Hosting byjambit GmbH.

Cover of TLPI


[8]ページ先頭

©2009-2025 Movatter.jp