Ich habe ein c-Programm, das im Thread ausgeführt wird und einige Daten in einer Datei anhängen. Ich möchte einen Python-Thread ausführen, der die gleiche Datei (welcher c-Thread schreibt) nach einem bestimmten Zeitintervall kopiert. Gibt es dafür einen sicheren Weg? Ich mache das in Linux OS.Python-Thread wartet auf das Kopieren der Datei
Antwort
Es gibt eine Menge wichtiger Details zu Ihrem Szenario, die nicht erwähnt werden, aber unter der Annahme, dass Sie keinen Sperrmechanismus in das C-Programm schreiben und dann im Python-Programm verwenden können (z. B. Wenn Sie eine vorhandene Anwendung auf Ihrem System verwenden), können Sie in os.stat nachschauen und die letzte geänderte Uhrzeit m_time überprüfen. Das hängt natürlich davon ab, dass Sie wissen, dass eine kürzliche m_time bedeutet, dass die Datei im C-Programm nicht wieder geöffnet und erneut verwendet wird.
Wenn das Datei-Handle im C-Programm immer geöffnet ist und gelegentlich geschrieben wird, dann gibt es nicht viele einfache Optionen, um zu wissen, wann es geschrieben wird und wo nicht.
Der c-Thread schreibt die Datei alle 2 Sekunden, aber mein Python-Thread kopiert die Datei nicht, während für 2 Sekunden c-Thread alle Sperren aus der Datei freigegeben werden, warum? –
Warum müssen Sie die Datei speziell in _Python_ kopieren? Warum nicht einfach 'rsync' in regelmäßigen Abständen starten, um dies zu tun? –
Wie kann ich das mit rsync machen? –
- 1. Wartet java.awt.Robot.waitForIdle() auf das Versenden von Ereignissen?
- 2. ScrapyJS - Wie man richtig auf das Laden der Seite wartet?
- 3. Warum wartet das Programm darauf, dass der schedule() beendet wird, aber nicht auf scheduleWithFixedDelay() wartet?
- 4. Lesebefehl wartet nicht auf Eingabe
- 5. Ende Thread, der auf Klick wartet
- 6. Probleme beim Kopieren der Datei in das Home-Verzeichnis PHP
- 7. C# TCP Client, der auf Daten wartet
- 8. Wartet Selenium auf JavaScript?
- 9. Wartet ng-app auf document.ready?
- 10. Wartet auf ein Ereignis, das durch falsche Wakeups verursacht wird?
- 11. Capybara wartet nicht auf das Laden von Symbolen
- 12. IComparable.CompareTo - Implementieren asynchron vergleichen, das auf Knopfdruck wartet
- 13. sendKeys wartet nicht auf Angular?
- 14. Das Kopieren der Datei von der temporären URL in das Dokumentenverzeichnis wird immer ausgelöst. NSURLSessionDownloadTask
- 15. wartet mein Prozess auf Eingabe?
- 16. Akkat.net wartet auf mehrere Datenstücke
- 17. Programm wartet nicht auf Benutzereingabe
- 18. Python wartet auf den Vorgang, bevor der Vorgang fortgesetzt wird
- 19. RequireJS wartet nicht auf Modullast?
- 20. Datei auf einem freigegebenen Netzwerklaufwerk kopieren
- 21. Capybara wartet nicht auf expect
- 22. PHP wartet auf API-Antwort
- 23. WCF kein Endpunkt, der auf größere Dateien wartet
- 24. TFBuild lokale Datei kopieren
- 25. Internet Explorer wartet auf localhost für immer
- 26. Kopieren der Matching Spalten aus CSV-Datei
- 27. Gradle - Datei nach der Generierung kopieren
- 28. Q.all.then wartet nicht auf die Fertigstellung
- 29. TFS: Erzwinge das Kopieren einer Datei, die gerade verwendet wird
- 30. Datei Ordner kopieren
Eine Option ist, die Datei zu sperren: http://StackOverflow.com/Questions/489861/locking-a-file-in-python –
Warum müssen Sie die Datei kopieren? –