Udostępnij za pośrednictwem


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 EINVALwartość , 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