Bonjour!
Je travaille sous linux Mandriva 2007, j'ai un probléme
pour libérez la mémoire tampon, je travaille en langage fortran.
Merci ! pour tous ce que vous ferez
Bonjour!
Je travaille sous linux Mandriva 2007, j'ai un probléme
pour libérez la mémoire tampon, je travaille en langage fortran.
Merci ! pour tous ce que vous ferez
Est ce que ton problème est par exemple de vider le tampon dans un fichier ? Il faudrait que tu précises un peu.
Par exemple tu demandes à un programme d'écrire dans un fichier mais lui il n'écrit que quand le tampon est plein donc il n'écrit pas à chaque appel de write.
Si tu fais un
call flush (numero logique de ton fichier)
ça oblige le programme à écrire le tampon dans le fichier mais je ne sais pas si ça le libère.
Pour économiser de la mémoire il faut utiliser les allocations dynamiques des tableaux avec allocate !
c'est super floue comme question, la mémoire tampon y en a un peu de partout, du coup si tu veux la libéré faut commencer par savoi où et qui l'a emprisonnée (dsl je délire tout seul)
la fonction flush est une extension de norme, il me semble qu'elle n'est pas dispo sur tout les compilo, et il y a en plus de cela des variable d'environnement qui détermine la taille des tampon, mais pareil, elles dépendent du compilo...
call flush vide justement le buffer. En fait si tu fais une grosse simulation, pour des économiser du temps CPU on attend que le buffer soit plein pour l'écrire dans un fichier donc on écrit moins souvent et ça va plus vite. Si tu veux forcer ton programme à écrire plus souvent il faut que tu fasse unEnvoyé par xmeszeus
call flush ( numéro du fichier)
Mais lorsque le programme est terminé le buffer est automatiquement vidé donc le contenu de ton fichier devrait être identique ! Donc l'erreur ou le problème est peut être ailleurs.
D'autre part comme te l'a dis genteur call flush va dépendre de ton systeme et de ton compilateur. Chez moi avec gfortran et linux(ubuntu ou fedora) ça marche ...
la déformation peut égalment venir nom pas du buffer mais du format de sortie.
peux-tu nous dire si ton fichier de sortie est binaire ou ASCII, comment il est écrit... etc... peut-être que tu n'écrit pas correctement dans le fichier et du coup cela fait foirer l'affichage et le traçcage ensuite...
(moi g mis trois mois à voir que je demandais de traces des tableaux NxM alors qu'ils étais (N+1)x(M+1) du coup cela décallait les résultats et déformais ma solution, ce n'était pa trop visible au début car N et M étaient tres grand)
Partager