tmpfile_s
Cria um arquivo temporário. É uma versão do com aprimoramentos de segurança, conforme descrito em Recursos de tmpfile
segurança na CRT.
Sintaxe
errno_t tmpfile_s(
FILE** pFilePtr
);
Parâmetros
pFilePtr
O endereço de um ponteiro para armazenar o endereço do ponteiro gerado em um fluxo.
Retornar valor
Retornará 0 se for bem-sucedido; um código de erro em caso de falha.
Condições de erro
pFilePtr |
Retornar valor | Conteúdo de pFilePtr |
---|---|---|
NULL |
EINVAL |
não alterado |
Se o erro de validação de parâmetro acima ocorrer, o manipulador de parâmetro inválido será chamado, conforme descrito em Validação de parâmetro. Se a execução tiver permissão para continuar, será definido como EINVAL
, errno
e o valor de retorno será EINVAL
.
Comentários
A função tmpfile_s
cria um arquivo temporário e coloca um ponteiro nesse fluxo no argumento pFilePtr
. O arquivo temporário é criado no diretório raiz. Para criar um arquivo temporário em um diretório diferente da raiz, use tmpnam_s
ou tempnam
com fopen
o .
Se o arquivo não puder ser aberto, tmpfile_s
grava NULL
no pFilePtr
parâmetro. Esse arquivo temporário é excluído automaticamente quando o arquivo é fechado, quando o programa termina normalmente ou quando _rmtmp
é chamado, supondo que o diretório de trabalho atual não seja alterado. O arquivo temporário é aberto no modo w+b (leitura/gravação binária).
A falha pode ocorrer se você tentar mais do que TMP_MAX_S
(consulte STDIO. H) chamadas com tmpfile_s
.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.
Requisitos
Rotina | Cabeçalho necessário |
---|---|
tmpfile_s |
<stdio.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
Observação
Este exemplo pode exigir privilégios administrativos para ser executado no 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
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de