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 EINVAL
festgelegt.
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