freopen_s

De RAD Studio
Aller à : navigation, rechercher

Remonter à stdio.h - Index


Fichier en-tête

stdio.h

Catégorie

Fonctions d'accès aux fichiers

Prototype

errno_t freopen_s(FILE * restrict * restrict newstreamptr, const char * restrict filename, const char * restrict mode, FILE * restrict stream);

Description

Remplace freopen en ajoutant des améliorations relatives à la sécurité.

freopen_s remplace le flux ouvert par le fichier nommé. Cette fonction ferme le flux même si l'ouverture a échoué. freopen_s est utile pour changer le fichier attaché à stdin, stdout ou stderr. Pour cela, elle tente d'abord de fermer tout fichier associé au paramètre stream, puis ouvre le fichier nommé par filename et lui associe le flux identifié par le paramètre stream.

Si le fichier a été ouvert avec succès, la valeur pointant sur le fichier est définie sur le paramètre newstreamptr. Sinon, newstramptr est défini sur null.

La chaîne mode peut prendre les mêmes valeurs que pour freopen, avec la même signification.

En cas de violation d'accès, freopen_s ne ferme pas ou ne tente pas d'ouvrir un fichier.

Valeur renvoyée

Si la fonction freopen_s a réussi, la valeur zéro est renvoyée. Sinon, une valeur différente de zéro est renvoyée.

Exemple

#include <stdio.h>
int main(void)
{
  /* Redirect stdout */
  FILE *file;
  file = new FILE;
  if (freopen_s(&file,"OUTPUT.FIL", "w", stdout)){
    fprintf(stderr, "error redirecting stdout\n");
    exit(1);
  }
  /* This output will go to a file */
  printf("This will go into a file.");
  /* Close the standard output stream */
  fclose(stdout);
  return 0;
}

Portabilité

POSIX Win32 ANSI C ANSI C++

freopen_s

+

+

+

+

Voir aussi