Freigeben über


tmpfile_s

Erstellt eine temporäre Datei. Es ist eine Version mit tmpfile Sicherheitsverbesserungen, wie in den Sicherheitsfeatures in der CRT beschrieben.

Syntax

errno_t tmpfile_s(
   FILE** pFilePtr
);

Parameter

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 Inhalt von pFilePtr
NULL EINVAL nicht geändert

Wenn der obige Parameterüberprüfungsfehler auftritt, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die Ausführung fortgesetzt werden darf, errno wird auf EINVAL, und der Rückgabewert ist EINVALfestgelegt.

Hinweise

Die Funktion tmpfile_s erstellt eine temporäre Datei und versieht diesen Stream im Argument pFilePtr mit einem Zeiger. Die temporäre Datei wird im Stammverzeichnis erstellt. Um eine temporäre Datei in einem anderen Verzeichnis als dem Stammverzeichnis zu erstellen, verwenden tmpnam_s Oder tempnam mit fopen.

Wenn die Datei nicht geöffnet werden kann, tmpfile_s wird in den pFilePtr Parameter geschriebenNULL. Diese temporäre Datei wird automatisch gelöscht, wenn die Datei geschlossen wird, wenn das Programm normal beendet wird oder wenn _rmtmp sie aufgerufen wird, vorausgesetzt, das aktuelle Arbeitsverzeichnis ändert sich nicht. Die temporäre Datei wird im W+b-Modus (binärer Lese-/Schreibzugriff) geöffnet.

Fehler können auftreten, wenn Sie mehr versuchen als TMP_MAX_S (siehe STDIO. H) Anrufe mit tmpfile_s.

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.

Anforderungen

Routine Erforderlicher Header
tmpfile_s <stdio.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

Hinweis

In diesem Beispiel können Administratorrechte für die Ausführung unter Windows erforderlich sein.

// 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() );
}
Temporary file 1 was created
Temporary file 2 was created
Temporary file 3 was created
3 temporary files deleted

Siehe auch

Stream-E/A
_rmtmp
_tempnam, , _wtempnamtmpnam_wtmpnam