Je suis curieux de savoir ce qui se passe dans ce scénario. Supposons que j'ouvre un fichier à lire et commence à lire le contenu dans une boucle. Que se passe-t-il si un autre processus commence à être ajouté au fichier pendant que je le lit? Que se passe-t-il si un autre processus commence à être ajouté au fichier pendant que je le lis?Lecture dans un fichier en cours de modification
0
A
Répondre
1
Sous UNIX/Linux:
Tous les processus ne voient que le fichier en tant que groupe d'octets d'une longueur. Si quelqu'un d'autre modifie les octets ou modifie la longueur, tous les autres processus voient immédiatement ces nouvelles données.
Un fichier ouvert fait référence à un inode. Si vous créez un fichier complètement nouveau, c'est un nouvel inode. Si vous renommez le nouveau fichier sur l'ancien fichier, le nom de fichier dans le répertoire référence maintenant le nouvel inode, alors que l'ancien inode est ouvert (même s'il ne peut plus être vu car il n'est lié à aucun répertoire.) Dans ce cas, vous continuez à voir l'ancien fichier et tout processus ouvrant/modifiant le nouveau fichier ne voit que le nouveau fichier.
Questions connexes
- 1. Lecture du fichier en cours de téléchargement
- 2. Rechercher si un fichier audio est en cours de lecture
- 3. Comment écraser un fichier en cours de lecture par Python
- 4. Lecture et modification de texte dans Silverlight
- 5. Modification d'un cours par un membre iterator
- 6. JSON est en cours de modification dans mon JavaScript ... pourquoi?
- 7. Propriété en cours de modification dans l'événement CurrentItemChanged
- 8. programmes en cours d'exécution en parallèle, lecture/écriture en C
- 9. Afficher les détails du fichier multimédia en cours de lecture dans le lecteur multimédia Android
- 10. Afficher la forme d'onde du fichier multimédia en cours de lecture dans Silverlight?
- 11. Modification des propriétés en lecture seule sur un objet
- 12. Flash player "maintenant en cours de lecture" sans interrompre la chanson en cours
- 13. Vérifiez si le son est en cours de lecture
- 14. si le son est en cours de lecture jquery
- 15. Modification de la langue de NSLocalizedString() en cours d'exécution
- 16. C# FMOD en cours de lecture à partir du flux
- 17. Modification des extensions de fichier dans un fichier XML
- 18. Lecture dans un fichier binaire dans haskell
- 19. Java: détection d'une modification dans un fichier (interrogation de fichier?)
- 20. Java - Lire un fichier CSV ligne par ligne - coincé avec des caractères étranges inexistants en cours de lecture!
- 21. La lecture des données d'un fichier journal en tant qu'application séparée est en cours d'écriture
- 22. Modification du fichier de configuration dans un package Visual Studio
- 23. HTTP liens absolus vers HTTPS en cours de modification
- 24. Lecture d'un fichier dans un tableau
- 25. SVN: Comment faire un fichier en lecture seule avec subversion?
- 26. Lecture sautant/recherchant dans un fichier MP4
- 27. Lecture à partir d'un fichier journal en cours d'écriture en utilisant python
- 28. lecture du fichier dans un tableau
- 29. Lecture d'un fichier binaire dans un tableau
- 30. Lecture d'un fichier dans un tableau en c
Donc, le processus qui exécute le code ci-dessus n'a pas comment obtenir sa propre copie du fichier de l'OS pendant qu'il est en cours de lecture? Le code ci-dessus pourrait boucle indéfiniment si d'autres processus sont constamment ajoutés au fichier? – mellowsoon
"Le code ci-dessus pourrait-il être bouclé pour toujours si d'autres processus sont constamment ajoutés au fichier?" Oui. Voir queue -f qui repose sur ce comportement. –