For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.

Creates a temporary file. This function is deprecated because a more secure version is available; see tmpfile_s.

FILE *tmpfile( void );  

If successful, tmpfile returns a stream pointer. Otherwise, it returns a NULL pointer.

The tmpfile function creates a temporary file and returns a pointer to that stream. The temporary file is created in the root directory. To create a temporary file in a directory other than the root, use tmpnam or tempnam in conjunction with fopen.

If the file cannot be opened, tmpfile returns a NULL pointer. This temporary file is automatically deleted when the file is closed, when the program terminates normally, or when _rmtmp is called, assuming that the current working directory does not change. The temporary file is opened in w+b (binary read/write) mode.

Failure can occur if you attempt more than TMP_MAX (see STDIO.H) calls with tmpfile.

RoutineRequired header

For additional compatibility information, see Compatibility in the Introduction.

System_CAPS_ICON_note.jpg Note

This example requires administrative privileges to run on Windows Vista.

// crt_tmpfile.c  
// compile with: /W3  
// This program uses tmpfile to create a  
// temporary file, then deletes this file with _rmtmp.  
#include <stdio.h>  
int main( void )  
   FILE *stream;  
   int  i;  
   // Create temporary files.  
   for( i = 1; i <= 3; i++ )  
      if( (stream = tmpfile()) == NULL ) // C4996  
      // Note: tmpfile is deprecated; consider using tmpfile_s instead  
         perror( "Could not open new temporary file\n" );  
         printf( "Temporary file %d was created\n", i );  
   // Remove temporary files.  
   printf( "%d temporary files deleted\n", _rmtmp() );  

Temporary file 1 was created  
Temporary file 2 was created  
Temporary file 3 was created  
3 temporary files deleted  

Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.

Stream I/O
_tempnam, _wtempnam, tmpnam, _wtmpnam