Partager via


tmpfile_s

crée un fichier temporaire.Il s'agit d'une version de tmpfile avec des améliorations de sécurité comme décrit dans Fonctionnalités de sécurité du 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é dans un flux.

Valeur de retour

Retourne 0 si l'opération a réussi, le code d'erreur en cas de échec.

conditions d'erreur

pFilePtr

Valeur de retour

contenu de pFilePtr

NULL

EINVAL

non modifié

si l'erreur ci-dessus de validation des paramètres se produit, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution de se poursuivre, errno est défini à EINVAL et la valeur de retour est EINVAL.

Notes

La fonction d' tmpfile_s crée un fichier temporaire et place un pointeur à ce flux de données dans l'argument d' 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, l'utilisation tmpnam_s ou le tempnam avec fopen.

si le fichier ne peut pas être ouvert, tmpfile_s écrit NULL au paramètre d' pFilePtr .Ce fichier temporaire est supprimée automatiquement 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 d' w+b (lecture/écriture binaire).

L'échec peut se produire si vous essayez plus qu' TMP_MAX_S (voir STDIO.H) les appels avec tmpfile_s.

Configuration requise

routine

en-tête requis

tmpfile_s

<stdio.h>

Pour des informations de compatibilité supplémentaires, consultez compatibilité dans l'introduction.

Exemple

[!REMARQUE]

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 l' exemples d'appel de code non managé.

Voir aussi

Référence

E/S de flux

_rmtmp

_tempnam, _wtempnam, tmpnam, _wtmpnam