Détermine si le fichier passé en paramètre existe

#include "t_bool.h"
#include "file_tools.h"

#include <stdlib.h>
#include <stdio.h>
#include <string.h>


/* Nom du fichier temporaire. */
#define TEMP_FILE "example.txt"

/* Liste, non exhaustive, de delimiteurs */
#define DELIM " *§:/;!.,?&~<>{([|])}\"\\+="

/* ----------------------------------------------------
   file_tools_exist
   ----------------------------------------------------
   Determine si le fichier passe en parametre existe.
   ----------------------------------------------------
   arg   : Fichier a lire.
   return: true si le fichier existe, sinon false.
   --------------------------------------------------- */
t_bool file_tools_exist (char const * const s_filename)
{
    FILE * p_file = NULL;
    t_bool bool = false;


    /* ----- Verification de l'argument ----- */

    if (!s_filename) {
        /* Erreur: argument invalide. */
        return false;
    }

    /* ----- Tentative d'ouverture du fichier ----- */

    p_file = fopen (s_filename, "r");

    if (p_file) {
        /* Le fichier est ouvert, il existe. */
        fclose (p_file);
        bool = true;
    }

    return bool;
}





  Vous pouvez retrouver cette fonction ainsi que toutes les autres fonctions de la catégorie Fichier dans l'archive file_tools.zip.

L'archive comprends les fichiers suivants :

  • example1.txt et example2.txt deux fichiers utilisés par la méthode main.
  • t_bool.h : déclaration du type booléen.
  • file_tools.h et file_tools.c : déclaration et implémentation des fonctions de la catégorie Fichier.
  • main.c : fonction permettant et mettant en œuvre l'ensemble des fonctions Fichier.

  Exécution

$gcc main.c file_tools.c -o filetools
$chmod +x filetools
$./filetools