Warum kann man unter Linux Dateien umbenennen während sie geöffnet sind und unter Windows nicht?



  • Gibt es dafür einen speziellen Grund warum dies geht?
    Und wie wird das realisiert?

    Vielleicht weil die Dateien unter Linux über Inodes anstatt über den Dateinamen angesprochen werden, aber wenn das so ist, warum funktioniert es dann bei gemounteten NTFS Partitionen?

    Wenn ich unter Windows eine Datei öffne, z.B. einen AVI Film mit VLC und den dann abspiele, dann kann ich die Datei des Films erst dann umbennennen, wenn ich VLC wieder beende, ansonsten ist ein umbenennen nicht möglich und wird verweigert.



  • Und aus diesem Grund werden wir auch weiterhin bei den ausgereiften
    HighEnd-Produkten des bewährten Weltmarktführers bleiben, mit denen
    wir in den vergangenen Jahren hervorragende Erfahrungen gemacht
    haben.

    Die kosten zwar ein bisschen mehr, überzeugen aber durch einen
    schnellen Return on Investment durch vorbildliche Sicherheit,
    Stabilität, Kompatibilität, Performance, Usability, Skalierbarkeit,
    und Kontinuität in der Produktpolitik.

    Und das ist es schliesslich, worauf es Experten wie meinen
    hochqualifizierten Mitarbeitern und mir im harten Tagesgeschäft des
    internationalen Wettbewerbs ankommt.

    Ideologisch motiviertes Bastelwerk, halbherzig zusammengeschustert
    durch weltfremde Langzeitstudenten mit Taxischein, hat keinerlei
    Chance, will man sich tagtäglich aufs Neue den Herausforderungen der
    Globalisierung erfolgreich stellen. Da können einfach nur Lösungen
    von Profis für Profis zum Einsatz kommen, die hervorragend durch das
    Portfolio der Redmonder Software-Spezialisten abgedeckt werden.



  • Das hat nichts mit dem Betriebssystem zu tun, sondern mit dem Programm, dass die Datei öffnet. Man kann unter Windows entweder per Flag beim öffnen angeben, ob die Datei auch umbenennbar sein soll solange die Datei geöffnet ist oder die Datei komplett einlesen und dann das Filehandle wieder schließen (bei großen Dateien vielleicht nicht ratsam). Auch dann lässt sich die Datei umbenennen, auch wenn sie dann genau genommen nicht geöffnet ist.



  • floorball schrieb:

    Das hat nichts mit dem Betriebssystem zu tun, sondern mit dem Programm, dass die Datei öffnet.

    Und welches Subsystem stellt die Funktion unter Windows bereit?



  • asdfgh schrieb:

    floorball schrieb:

    Das hat nichts mit dem Betriebssystem zu tun, sondern mit dem Programm, dass die Datei öffnet.

    Und welches Subsystem stellt die Funktion unter Windows bereit?

    Na, das Win32 Subsystem natürlich 🙄
    Aber da ich vorausschauend denke dass das nicht das ist was du gemeint hast analysieren wir mal was ich geschrieben habe

    floorball schrieb:

    Man kann unter Windows entweder per Flag beim öffnen angeben, ob die Datei auch umbenennbar sein soll solange die Datei geöffnet ist oder...

    ==>
    1. CreateFile
    2. Das passende Flag suchen und man findet

    MSDN schrieb:

    FILE_SHARE_DELETE
    ...
    Note Delete access allows both delete and rename operations.

    floorball



  • Linux vs. Windows schrieb:

    Gibt es dafür einen speziellen Grund warum dies geht?
    Und wie wird das realisiert?

    Es ist einfach eine Designentscheidung des Betriebssystems. Per-Default gibt es das von dir beschriebene Verhalten, auf beiden Systemen lässt sich das jeweils andere Verhalten durch explizite Anforderung der beteiligten Userprogramme erreichen, wenn auch mit semantischen Unterschieden, die nicht ganz unbedeutend sind.


Anmelden zum Antworten