Freigeben über


tmpfile_s

Erstellt eine temporäre Datei. Es ist eine Version von tmpfile mit werden, wie in Sicherheitsfunktionen in der CRT beschrieben.

errno_t tmpfile_s(
   FILE** pFilePtr
);

Parameter

  • [out] pFilePtr
    Die Adresse eines Zeigers, um die Adresse des generierten Zeigers in einen Stream zu speichern.

Rückgabewert

Gibt bei Erfolg 0 (null) zurück und einen Fehlercode, wenn ein Fehler auftritt.

Fehlerbedingungen

pFilePtr

Rückgabewert

Contents of pFilePtr

NULL

EINVAL

nicht geändert

Wenn der obige Parametervalidierungsfehler auftritt, wird der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben. Wenn die Ausführung zulässig ist, um fortzufahren, wird errno auf EINVAL festgelegt und der Rückgabewert ist EINVAL.

Hinweise

Die tmpfile_s-Funktion erstellt eine temporäre Datei und fügt einen Zeiger auf diesem Stream in das pFilePtr ein Argument. Die temporäre Datei wird im Stammverzeichnis erstellt. Um keine temporäre Datei in einem Verzeichnis als dem Stammverzeichnis zu erstellen, verwenden Sie tmpnam_s oder tempnam in Verbindung mit fopen.

Wenn die Datei nicht geöffnet werden kann, wird tmpfile_s von NULL in pFilePtr-Parameter. Diese temporäre Datei wird automatisch gelöscht, wenn die Datei wird geschlossen, wenn das Programm beendet wird normalerweise oder _rmtmp aufgerufen und wird, dass das aktuelle Arbeitsverzeichnis nicht ändert. Die temporäre Datei ist im Modus w+b (unärer Lese-/Schreibzugriff) geöffnet.

Fehler kann, wenn Sie versuchen, mehr als TMP_MAX_S vorkommen (siehe STDIO.H) Aufrufe mit tmpfile_s.

Anforderungen

Routine

Erforderlicher Header

tmpfile_s

<stdio.h>

Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

Beispiel

Hinweis

Dieses Beispiel erfordert Administratorrechte für die Ausführung unter Windows Vista.

// crt_tmpfile_s.c
// This program uses tmpfile_s to create a
// temporary file, then deletes this file with _rmtmp.
//

#include <stdio.h>

int main( void )
{
   FILE *stream;
   char tempstring[] = "String to be written";
   int  i;
   errno_t err;

   // Create temporary files.
   for( i = 1; i <= 3; i++ )
   {
      err = tmpfile_s(&stream);
      if( err )
         perror( "Could not open new temporary file\n" );
      else
         printf( "Temporary file %d was created\n", i );
   }

   // Remove temporary files.
   printf( "%d temporary files deleted\n", _rmtmp() );
}
  

.NET Framework-Entsprechung

Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Stream-E/A

_rmtmp

_tempnam, _wtempnam, tmpnam, _wtmpnam