tmpfile_s
Crée un fichier temporaire. Il s'agit d'une versions de tmpfile avec des améliorations de sécurité, comme décrit dansFonctionnalités de sécurité dans le CRT.
errno_t tmpfile_s(
FILE** pFilePtr
);
Paramètres
- [out] pFilePtr
L'adresse d'un pointeur pour stocker l'adresse du pointeur généré vers une source de données.
Valeur de retour
Retourne zéro si l'opération a réussi, un code d'erreur en cas de échec.
Conditions d'erreur
pFilePtr |
Valeur de retour |
Contenu depFilePtr |
---|---|---|
NULL |
EINVAL |
non modifié |
Si l'une de ces erreurs de validation de paramètre ci-dessus se produit, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, errno est fixé à EINVAL et la valeur de retour est EINVAL.
Notes
La fonction tmpfile_s crée un fichier temporaire et met un pointeur vers le flux de données dans l'argument pFilePtr. Le fichier temporaire est créé dans le répertoire racine. Pour créer un fichier temporaire dans un répertoire autre que la racine, utilisez tmpnam_s ou tempnam conjointement avec fopen.
Si le fichier ne peut pas être ouvert, tmpfile_s écrit NULL pour le paramètre pFilePtr. Ce fichier temporaire est automatiquement supprimé lorsque le fichier est fermé, lorsque le programme se termine normalement, ou lorsque _rmtmp est appelé, en supposant que le répertoire de travail actuel ne change pas. Le fichier temporaire est ouvert en mode w+b (lecture/écriture binaire).
L'erreur peut se produire si vous tentez plus de TMP_MAX_S (voir STDIO.H) appels avec TMP_MAX_S.
Configuration requise
Routine |
En-tête requis |
---|---|
tmpfile_s |
<stdio.h> |
Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.
Exemple
Notes
Cet exemple requiert l'exécution des privilèges d'administrateur sous 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() );
}
Équivalent .NET Framework
Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.