Partager via


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.

Voir aussi

Référence

E/S de flux

_rmtmp

_tempnam, _wtempnam, tmpnam, _wtmpnam