tmpfile_s
Tworzy plik tymczasowy. Jest to wersja z ulepszeniami zabezpieczeń tmpfile
zgodnie z opisem w temacie Funkcje zabezpieczeń w środowisku CRT.
Składnia
errno_t tmpfile_s(
FILE** pFilePtr
);
Parametry
pFilePtr
Adres wskaźnika do przechowywania adresu wygenerowanego wskaźnika do strumienia.
Wartość zwracana
Zwraca wartość 0, jeśli operacja powiedzie się, kod błędu w przypadku błędu.
Warunki błędu
pFilePtr |
Wartość zwracana | Zawartość pFilePtr |
---|---|---|
NULL |
EINVAL |
nie zmieniono |
Jeśli wystąpi powyższy błąd weryfikacji parametru, wywoływana jest nieprawidłowa procedura obsługi parametrów zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, errno
jest ustawiona na EINVAL
wartość , a zwracana wartość to EINVAL
.
Uwagi
Funkcja tmpfile_s
tworzy plik tymczasowy i umieszcza wskaźnik w tym strumieniu w argumencie pFilePtr
. Plik tymczasowy jest tworzony w katalogu głównym. Aby utworzyć plik tymczasowy w katalogu innym niż katalog główny, użyj polecenia tmpnam_s
lub tempnam
z fopen
.
Jeśli nie można otworzyć pliku, tmpfile_s
zapisuje NULL
w parametrze pFilePtr
. Ten plik tymczasowy jest automatycznie usuwany po zamknięciu pliku, gdy program kończy się normalnie lub _rmtmp
gdy jest wywoływany, przy założeniu, że bieżący katalog roboczy nie zmienia się. Plik tymczasowy jest otwierany w trybie w+b (binarny odczyt/zapis).
Błąd może wystąpić, jeśli spróbujesz więcej niż TMP_MAX_S
(zobacz TEMAT STDIO. Wywołania H) z elementem tmpfile_s
.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
Procedura | Wymagany nagłówek |
---|---|
tmpfile_s |
<stdio.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
Uwaga
Ten przykład może wymagać uprawnień administracyjnych do uruchamiania w systemie Windows.
// 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
Zobacz też
We/Wy strumienia
_rmtmp
_tempnam
, , _wtempnam
, , tmpnam
_wtmpnam