C sous Linux - C - Programmation
Marsh Posté le 27-10-2004 à 17:06:33
déjà utiliser les FILE*
rajoute des vérification d'erreurs partout (open par exemple)
après s'il tourne indéfiniment dans ta boucle c'est que y a des trucs à lire ...
Marsh Posté le 27-10-2004 à 17:18:44
Pour le FILE* j'ai pas le choix, c'est mon prof qui utilise un int.
J'ai testé les codes de retour et ils sont ok. Mais le problème ne vient pas de là vu que le code marche après l'écriture. C'est juste quand je n'utilise que la lecture que ça plante (après avoir relancé le programme). C'est pour devenir fou...
Marsh Posté le 27-10-2004 à 16:47:47
Bonjour!
J'ai un petit problème pour écrire et lire dans un fichier sous Linux.
J'ai une fonction qui initialise un index.
Si le fichier index.dat existe, il le charge dans un tableau en mémoire, sinon il crée le fichier index.dat a partir d'un fichier de données.
A la première exécution, je crée mon fichier index et j'écris mon tableau d'index dedans.
Je ferme mon fichier et je lis les données pour vérifier, tout est ok, elles sont affichées correctement.
Mais ensuite, je quitte mon programme et je le relance.
Mon programme passe donc par l'autre condition (le fichier index existe, on le charge donc en mémoire).
Et la, en lisant EXACTEMENT le même code de lecture du fichier, il affiche n'importe quoi!
Voici le code :
Donc ce code ci marche parfaitement. Mais lorsque je relance le programme et que je n'effectue que la lecture, il bloque dans la boucle car il ne passe jamais par cette condition
if(read(FichInd.hdIndex,tmp,TailleEnreg)!=TailleEnreg)
go=0;
Et il m'affiche des 0 pour Pos et rien pour Element.
Merci d'avance pour votre aide.