411 REFERENCE · Wikibooks
C programming/stdio.h/tmpfile
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
In computing, tmpfile is an ISO C/POSIX function for creating a temporary file, a computer file which ceases to exist when the program, which opened the file, closes it or terminates.tmpfile by OpenGroupTemporary Files by GNU C Librarytmpfile by HMUG
Usage
Inclusion
C
#include <stdio.h>
C++
#include <cstdio>
Declaration
FILE* tmpfile(void);
Semantics
The function tmpfile reports a pointer to a valid file stream on success; on failure, it returns NULL.
Error conditions
In addition to returning NULL, tmpfile sets errno on failure. The permissible values of errno, if tmpfile fails, are:
EINTR - if a signal was caught during the execution of tmpfile.
EMFILE - if the maximum number of file descriptors and/or the maximum number of file streams has been reached (in the process).
ENFILE - if the maximum allowable number of files is currently open (in the system).
ENOSPC - if there is no space in the file system for creating the temporary file.
EOVERFLOW - if the file is a regular file and the size of the file cannot be represented correctly in an object of type off_t.
ENOMEM - if there is insufficient memory for allocating the file stream.
Caveats
The tmpfile function is susceptible to a number of security vulnerabilities; use the non-portable mkstemp (UNIX) or tmpfile_s (MSVCRT) functions, instead, to avoid these issues.TMPNAM-TMPFILE Vulnerability by Build Security InVOID FI039-C. Create temporary files securely by CERT
The implementation of this function in Microsoft C run-time library tries to create the file in the root directory of the current drive and typically fails reporting "Access denied".
References
External links
C++ reference for std::tmpfile
deep