tmpfile_s
Cria um arquivo temporário. É uma versão de tmpfile com aprimoramentos de segurança conforme descrito em Recursos de segurança no CRT.
errno_t tmpfile_s(
FILE** pFilePtr
);
Parâmetros
- [saída] pFilePtr
O endereço de um ponteiro para armazenar o endereço do ponteiro gerado para um fluxo.
Valor de retorno
Retornará 0 se tiver êxito, um código de erro da falha.
Condições de erro
pFilePtr |
Valor de Retorno |
Contents of pFilePtr |
---|---|---|
NULL |
EINVAL |
não alterado |
Se o erro acima de validação de parâmetro ocorre, o manipulador inválido do parâmetro será chamado, conforme descrito em Validação do parâmetro. Se a execução for permitida continuar, errno está definido como EINVAL e o valor de retorno é EINVAL.
Comentários
A função de tmpfile_s cria um arquivo temporário e coloca um ponteiro para aquele fluxo no argumento de 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 junto com fopen.
Se o arquivo não pode ser aberto, tmpfile_s grava NULL ao parâmetro de pFilePtr . Esse arquivo temporário será excluído automaticamente quando o arquivo estiver fechado, quando o programa será encerrado normalmente, ou quando _rmtmp for chamado, supondo que o diretório de trabalho atual não se altera. O arquivo temporário é aberto em modo de leitura/gravação ( w+b binário).
A falha pode ocorrer se você tentar mais do que TMP_MAX_S (consulte) STDIO.H chama com tmpfile_s.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
tmpfile_s |
<stdio.h> |
Para informações adicionais de compatibilidade, consulte Compatibilidade na Introdução.
Exemplo
Dica
Este exemplo requer privilégios administrativos executar no Windows Vista.
// 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() );
}
Equivalência do .NET Framework
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas.