Sdílet prostřednictvím


tmpfile_s

Vytvoří dočasný soubor. Jedná se o tmpfile verzi s vylepšeními zabezpečení, jak je popsáno v funkcích zabezpečení v CRT.

Syntaxe

errno_t tmpfile_s(
   FILE** pFilePtr
);

Parametry

pFilePtr
Adresa ukazatele pro uložení adresy vygenerovaného ukazatele na datový proud.

Vrácená hodnota

Vrátí hodnotu 0, pokud je úspěšná, kód chyby při selhání.

Chybové podmínky

pFilePtr Vrácená hodnota Obsah pFilePtr
NULL EINVAL nezměnilo se

Pokud dojde k výše uvedené chybě ověření parametru, vyvolá se neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud je spuštění povoleno pokračovat, errno je nastavena na EINVALa návratová hodnota je EINVAL.

Poznámky

Funkce tmpfile_s vytvoří dočasný soubor a do argumentu umístí ukazatel na pFilePtr tento datový proud. Dočasný soubor se vytvoří v kořenovém adresáři. Chcete-li vytvořit dočasný soubor v jiném adresáři než kořen, použijte tmpnam_s nebo tempnam s fopen.

Pokud soubor nejde otevřít, tmpfile_s zapíše NULL se do parametru pFilePtr . Tento dočasný soubor se automaticky odstraní při zavření souboru, při normálním ukončení programu nebo při _rmtmp zavolání za předpokladu, že se aktuální pracovní adresář nezmění. Dočasný soubor se otevře v režimu w+b (binární čtení/zápis).

K chybě může dojít, pokud se pokusíte o více než TMP_MAX_S (viz STDIO. H) hovory s tmpfile_s.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Požadavky

Rutina Požadovaný hlavičkový soubor
tmpfile_s <stdio.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

Poznámka:

Tento příklad může vyžadovat oprávnění správce ke spuštění ve 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

Viz také

Vstupně-výstupní operace streamu
_rmtmp
_tempnam, _wtempnam, , tmpnam_wtmpnam