Ouverture de fichier et boucle
Bonjour à tous,
voilà je suis en train de terminer un petit programme pour recopier des fichiers tout en donnant des noms précis (déterminé dans une chaîne).
Voici le bout de code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
FILE *fOld = fopen(argv[1], "rb");
if (fOld != NULL) {
while (MaPile) {
FILE *fNew = fopen(MaPile->nomFichier, "wb");
copieFichier (fOld, fNew);
fclose(fNew);
MaPile = MaPile->prec;
}
} |
Il fonctionne, dans le sens où tous mes fichiers sont créés.
Par contre, seul, le dernier fichier entré dans ma chaîne est bien copié.
Les autres fichiers sont créés mais vide.
Pour que celà fonctionne correctement, je dois faire ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
FILE *fOld = fopen(argv[1], "rb")
if (fOld != NULL) {
while (MaPile) {
FILE *fOld = fopen(argv[1], "rb");
FILE *fNew = fopen(MaPile->nomFichier, "wb");
copieFichier (fOld, fNew);
fclose(fNew);
MaPile = MaPile->prec;
}
} |
Ma question est toute simple, est-ce normal ?
Je veux dire, je pensais qu'en ouvrant mon fichier avant la boucle la variable était toujours disponible est donc avec le contenu du fichier.
N'est-pas trop lourd de fonctionner comme ca ?
Merci de vos réponses et de votre aide.