Wenn Sie die Datei nicht mit stat
und es Ihnen nichts ausmacht, Linux-spezifisch zu sein, dann können Sie die inotify-API verwenden. Ihr Kernel muss 2.6.13 oder neuer sein und glibc 2.4 oder neuer (was der Fall sein wird, wenn Sie etwas aus den letzten 2 oder 3 Jahren verwenden). Die API gibt Ihnen grundsätzlich einen Dateideskriptor, den Sie poll
o select
y read
um Informationen über geänderte Dateien zu erhalten. Wenn Ihre Anwendung interaktiv ist, wie ein Editor, dann wird sie typischerweise eine Art Ereignisschleife haben, die select
o poll
und kann Ihren inotify-Dateideskriptor auf Ereignisse überwachen.
Die Verwendung von inotify ist im Allgemeinen vorzuziehen stat
Denn Sie erhalten sofort eine Benachrichtigung und verschwenden keine Zeit und keine E/A-Abfragen auf der Festplatte, wenn sich die Datei nicht ändert. Der Nachteil ist, dass es möglicherweise nicht über NFS oder andere vernetzte Dateisysteme funktioniert und nicht portabel ist.
Diese Seite bei IBM Developerworks enthält einige Beispiele für C-Code, und die Manpage ist die maßgebliche Referenz.