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 EINVAL
a 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