Freigeben über


tmpfile_s

Erstellt eine temporäre Datei.Es handelt sich um eine Version von tmpfile mit unter Security Enhancements, wie in Sicherheitsfeatures im CRTbeschrieben.

errno_t tmpfile_s(
   FILE** pFilePtr
);

Parameter

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

Rückgabewert

Gibt 0 zurück, wenn erfolgreich, ein Fehlercode auf Fehler.

Fehlerbedingungen

pFilePtr

Rückgabewert

Inhalt pFilePtr

NULL

EINVAL

nicht geändert

Wenn der oben genannten Parametervalidierungs Fehler auftritt, wird der Ereignishandler aufgerufen, z. B. ungültige Parameter in Parametervalidierungbeschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, wird errno zu EINVAL festgelegt, und der Rückgabewert ist EINVAL.

Hinweise

Die tmpfile_s-Funktion erstellt eine temporäre Datei und fügt einen Zeiger auf diesen Stream in das pFilePtr-Argument ein.Die temporäre Datei befindet sich im Stammverzeichnis erstellt.Um eine temporäre Datei in einem Verzeichnis außer den Stamm zu erstellen, verwenden Sie tmpnam_s oder tempnam in Verbindung mit fopen.

Wenn die Datei nicht geöffnet werden kann, schreibt tmpfile_sNULL zum pFilePtr-Parameter.Diese temporären Datei wird automatisch gelöscht, wenn die Datei geschlossen wird, wenn das Programm beendet wird normalerweise aufgerufen wird oder wenn _rmtmp und davon ausgeht, dass das aktuelle Arbeitsverzeichnis nicht ändert.Die temporäre Datei befindet sich im Modus w+b (binäres Lese-/Schreibzugriff) geöffnet.

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

Anforderungen

Routine

Erforderlicher Header

tmpfile_s

<stdio.h>

Um Kompatibilität zusätzlichen Informationen finden Sie unter Kompatibilität in der Einführung.

Beispiel

HinweisHinweis

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. Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

Siehe auch

Referenz

Stream E/A

_rmtmp

_tempnam, _wtempnam, tmpnam, _wtmpnam