tmpfile_s
Crée un fichier temporaire. Il s’agit d’une version d’améliorations de tmpfile
sécurité, comme décrit dans les fonctionnalités de sécurité du CRT.
Syntaxe
errno_t tmpfile_s(
FILE** pFilePtr
);
Paramètres
pFilePtr
Adresse d’un pointeur pour stocker l’adresse du pointeur généré désignant un flux.
Valeur retournée
Retourne 0 si l’opération aboutit et un code d’erreur en cas d’échec.
Conditions d’erreur
pFilePtr |
Valeur retournée | Contenu de pFilePtr |
---|---|---|
NULL |
EINVAL |
inchangé |
Si l’erreur de validation de paramètre ci-dessus se produit, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à continuer, errno
est définie EINVAL
sur , et la valeur de retour est EINVAL
.
Notes
La fonction tmpfile_s
crée un fichier temporaire et place un pointeur vers ce flux 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
utilisez fopen
.
Si le fichier ne peut pas être ouvert, tmpfile_s
écrit NULL
dans le pFilePtr
paramètre. Ce fichier temporaire est automatiquement supprimé lorsque le fichier est fermé, lorsque le programme se termine normalement, ou lorsqu’il _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’échec peut se produire si vous tentez plus que TMP_MAX_S
(voir STDIO. Appels H) avec tmpfile_s
.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Spécifications
Routine | En-tête requis |
---|---|
tmpfile_s |
<stdio.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
Remarque
Cet exemple peut nécessiter l’exécution de privilèges d’administration sur 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