Structure c, fichier
Fermé
wicky-james
-
24 juin 2017 à 18:12
Wicky-james Messages postés 36 Date d'inscription vendredi 14 novembre 2014 Statut Membre Dernière intervention 9 juin 2020 - 30 juin 2017 à 20:50
Wicky-james Messages postés 36 Date d'inscription vendredi 14 novembre 2014 Statut Membre Dernière intervention 9 juin 2020 - 30 juin 2017 à 20:50
A voir également:
- Structure c, fichier
- Fichier rar - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Téléchargez cette archive (dossier compressé). en extraire tous les fichiers dans un dossier local. quel fichier contient l’expression trouverpix ? ✓ - Forum Windows
- Ouvrir fichier .bin - Guide
1 réponse
Dalfab
Messages postés
703
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
1 mars 2023
100
25 juin 2017 à 14:00
25 juin 2017 à 14:00
Bonjour,
Pour vérifier si un fichier existe, il n'y a pas de fonction dans la norme à ma connaissance. Il faut utiliser des librairies spécifiques, sinon on peut écrire une fonction simple qui ouvrira le fichier si n'existe pas et ouverture écriture possible, sinon retournera une erreur non nulle.
Pour vérifier si un fichier existe, il n'y a pas de fonction dans la norme à ma connaissance. Il faut utiliser des librairies spécifiques, sinon on peut écrire une fonction simple qui ouvrira le fichier si n'existe pas et ouverture écriture possible, sinon retournera une erreur non nulle.
#include <stdio.h>
#include <errno.h>
int tryOpen( const char name[] , FILE **pf ) {
int ret = 0;
FILE* file = fopen(name, "r+"); // ouverture en mode modification
if ( file != NULL ) {
// le fichier a pu être ouvert pour modification
fclose( file );
file = NULL;
ret = EEXIST; // erreur il existe déjà
}
else {
file = fopen(name, "wt"); // ouverture en mode écriture texte
if ( file == NULL ) {
// impossible : la cause est écrite dans errno
// EINVAL: nom de fichier non valide
// EACCES: fichier en lecture seule ou protégé
// ENOENT: nom réservé, ou répertoire n'existe pas
// EBADF : impossible d'écrire
ret = errno;
}
// sinon on a ouvert le fichier
}
if ( pf != NULL )
*pf = file; // transmettre le fichier ouvert
else if ( file != NULL )
fclose( file );
return ret;
}
30 juin 2017 à 20:50
je voulu au premier lieu ne pas laisser entre un nom existant. ca n'a pas marche.