Partage via


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 EINVALsur , 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

Voir aussi

E/S de flux
_rmtmp
_tempnam, , _wtempnamtmpnam, ,_wtmpnam