2009-10-10 12 views
0

Lorsque vous utilisez un script long qui écrit dans un fichier texte ouvert, par exemple pour la journalisation, quelle est la meilleure approche: ouvrir un fichier, y écrire si nécessaire, puis fermer lorsque vous avez terminé? Ou ouvrez le fichier, écrivez-le et fermez-le immédiatement à chaque fois? Je peux voir les avantages et les inconvénients des deux. Des pensées ou des expériences?Scripts longs et documents ouverts

Répondre

0

Généralement, ouvrir et fermer est ce que je fais, sauf s'il y a beaucoup d'accès aux fichiers. Gardez à l'esprit que pour les scripts TRÈS actifs et à exécution longue, vous devrez peut-être gérer l'épuisement des descripteurs de fichiers dans votre système d'exploitation.

http://en.wikipedia.org/wiki/File_descriptor

0

Je suis d'avis que vous détenez seulement des ressources aussi longtemps que vous avez besoin s'il y a une possibilité de discorde pour la ressource. Pour un processus de longue durée, je vous suggère d'ouvrir/rechercher/écrire/fermer uniquement lorsque vous avez besoin d'écrire dans le fichier. Cela laisse le fichier disponible pour d'autres processus à utiliser. En particulier avec les fichiers journaux, j'aimerais pouvoir les lire ou les faire tourner périodiquement. Si le processus maintient le fichier ouvert, il devient difficile de le faire. Je pense que cela vaut probablement la peine d'écrire du code supplémentaire pour permettre à plusieurs processus d'utiliser la ressource.

0

Si vous avez un seul fichier journal dans lequel vous écrivez, la plupart du temps vous le laissez ouvert pendant la durée du script/programme. Si vous écrivez dans de nombreux fichiers différents, vous devrez en fermer certains parce qu'il y a généralement des limites au nombre de handles de fichiers ouverts que vous pouvez avoir en une fois. Je ne peux pas imaginer que vous atteindriez cette limite, sauf dans des cas extrêmes.

Questions connexes