Se connecter / S'enregistrer
Votre question

[C sous Linux] Probleme avec un fichier deja fermé

Tags :
  • linux
  • Programmation
Dernière réponse : dans Programmation
14 Avril 2008 10:36:40

Bonjour,

J'aurai besoin de savoir s'il existe une fonction sous Linux qui permet de savoir si un descripteur de fichier a déjà été fermé ou non.

Par exemple avec le code suivant:

  1. FILE *fic;
  2. fic = fopen("monfichier.txt", "a");
  3. fclose(fic);
  4. // Insérer une fonction qui permet de déterminer si le fichier est fermé ou non


Je ne parle pas de savoir si la fermeture s'est bien déroulé, je peux vérifier avec un code d'erreur, mais juste savoir si le fichier à déjà été fermé auparavant.

Merci ^^

Autres pages sur : linux probleme fichier ferma

14 Avril 2008 13:23:33

solution 1 : regarder si fic est null.
je ne sais pas si c'est le cas.

Solution 2 : appeler une fonction de lecture sur fic. si ça échoue, c'est que c'est fermé.
14 Avril 2008 14:20:22

Salut Vinz42,

C'est pas bête, j'ai pas pensé à utiliser un fseek par exemple. Si le fichier a déjà été fermé, il génère une erreur.

En tout cas merci :) 
14 Avril 2008 20:47:19

1/ le pointeur n'est pas remis à NULL, tu devras le faire toi même
2/ un appel avec comme argument une valeur qui ne pointe vers rien résulte en un comportement indéfini.

Citation :
Si la fonction réussit intégralement, elle renvoie 0, sinon elle renvoie EOF et errno contient le code d'erreur. Dans tous les cas, tout autre accès ultérieur au flux (y compris un autre appel de fclose()) conduit à un comportement indéfini.

src: "man fclose"

tu devrais tout simplement le mettre à NULL une fois férmé
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS