Ich habe gelesen, dass ein Unix-ähnliches System normalerweise eine empfohlene Sperre für Datei-E / A verwendet, während die obligatorischen Sperren von Microsoft-Betriebssystemen verwendet werden. Wenn ich das obligatorische Sperren richtig verstanden habe, wird die Dateisperre vom Betriebssystem selbst erzwungen. Aber ich verstehe nicht die Intuition von Advisory Locking. Nehmen Sie das Beispiel von zwei Prozessen, sagen Sie "A" und "B", die an der Datei "foo" arbeiten. Nehmen wir an, "A" schreibt in "foo" und "B" liest aus "foo". Wie würde das Sperren von Hinweisen in diesem Szenario funktionieren? Wenn das Betriebssystem / Dateisystem keine Sperre für "foo" erzwingt, wie wird dann die Konsistenz für Lese- und Schreibvorgänge aufrechterhalten?
man fcntl
: pubs.opengroup.org/onlinepubs/9699919799/functions/fcntl.html (POSIX)