Der Vaterprozess kann zum Beispiel eine Datei öffnen und an einen niedriger privilegierten Kindprozess vererben, der sie selbst nicht mehr öffnen könnte. Sowas kommt schon mal vor.
09. November 2026, 18:30
Der Vaterprozess kann zum Beispiel eine Datei öffnen und an einen niedriger privilegierten Kindprozess vererben, der sie selbst nicht mehr öffnen könnte. Sowas kommt schon mal vor.Solange der Vaterprozess die Datei unmittelbar nach oder während dem Vererben schließt liegt da auch kein Sharing vor so das ein lokaler Datei-Pointer in der libc kein Problem darstellt. Und genau darum geht es mir doch, ich würde gerne den VFS-Service aus solchen Dingen weitestgehend raus halten und für echte Dateien nur pread/pwrite anbieten wollen (beides aus Gründen der Performance). Klar bedeutet dass das in der libc eine zusätzliche Schicht rein muss aber die dürfte eigentlich nur aus einer vTable bestehen (dafür ist diese Schicht nicht mehr im VFS oder sonstwo erforderlich).


Denn read und write kannst du immer mit pread und pwrite emulieren ....Aber nur wenn auch der Datei-Pointer in der libc bleibt und das ist ja wieder nicht POSIX-Konform. Dieser Dreizeiler wird für ein POSIX-Konformes System wohl ins VFS müssen. Wenn das VFS nur pread/pwrite kennt dann benötigt es auch kein seek,
und pread/pwrite in der libc verschwinden lassen.Und wie? Doch wohl hoffentlich nicht indem Du seek und dann read/write und dann wieder seek machst? Stell Dir nur mal vor was die anderen POSIX-Konformen Programme dazu sagen wenn Du einfach mal so den Datei-Pointer kurz änderst.
Von den 2 unnützen Syscalls/IPC-Calls mal ganz abgesehen, eigentlich sind es ja 3 zusätzliche Syscalls/IPC-Calls weil Du ja vorher noch den alten Datei-Pointer erfragen musst.