Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Weitere Besonderheiten und Einschränkungen

&pagelevel(4)&pagelevel

Bei folgenden Programmschnittstellen existieren Einschränkungen beim Zugriff auf Dateien von bs2fs-Dateisystemen:

chmod()

Die Funktion wird nur auf Datei- und Elementebene akzeptiert. Andernfalls wird sie mit EISDIR zurückgewiesen. Die Bits S_ISUID ("set user id on execution") und S_ISGID ("set group id on execution") sind für BS2000-Dateien und Bibliothekselemente nicht definiert und werden ignoriert (falls bei chmod angegeben). Das Feld st_ctime des Dateistatus wird nicht verändert, es repräsentiert wie bei BS2000-Dateien den Zeitpunkt der Erzeugung (creation time, vgl. fstat).

chown(), fchown()

Die Funktionen werden mit ENOSYS zurückgewiesen, falls versucht wird, die Benutzer- und/oder Gruppennummer zu ändern.

close()

Nach Fehlern bei close() (z.B. mit den errno-Werten EIO, ENOEXEC, ENOSPC) bleibt die Schattendatei erhalten. Sie kann mit Unterstützung des POSIX-Verwalters zur Rettung der Daten genutzt werden.

creat(), open()

Die Funktionen werden nur auf Datei- und Elementebene akzeptiert. Andernfalls werden sie mit EISDIR zurückgewiesen. Eine Datei oder ein Element kann nicht gleichzeitig im BS2000 und in einem bs2fs-Dateisystem schreibend geöffnet sein. Ist eine Datei oder ein Element in einem bs2fs-Dateisystem schreibend geöffnet, kann sie bzw. es auch nicht in einem anderen bs2fs-Dateisystem geöffnet werden. Wird eine Datei nicht vom Eigentümer (userid des Dateisystems), sondern von einem Prozess mit TSOS-Privileg erzeugt, wird sie trotzdem der uid und gid des Eigentümers des Dateisystems zugeordnet. Existiert eine (im bs2fs-Dateisystem nicht sichtbare) Dateigenerationsgruppe mit dem angegebenen Dateinamen, wird der Aufruf mit ENOSTR zurück gewiesen.

Ein Bibliothekselement darf nicht nur der Eigentümer erzeugen, sondern jeder Benutzer, der Schreibrecht und ggf. das Administrationsrecht für die Bibliothek oder den Typ besitzt. Ist jedoch der Benutzer, der ein Element erzeugt, nicht der Eigentümer, werden die im mode-Argument angegebenen Schutzattribute ignoriert, und es werden Standardschutzattribute gesetzt.

creat(), open() mit O_EXCL:

Existiert eine im bs2fs-Dateisystem nicht sichtbare Datei, also eine mit nicht unterstützten Eigenschaften (STORAGE-LEVEL != S0, SUPPORT != PUBLIC), wird der Aufruf mit ENXIO zurückgewiesen. Die Datei bleibt dennoch (z.B. für das Kommando ls) unsichtbar, ihre Existenz kann aber mit "bs2cmd fstat ..." überprüft werden.

link()

Die Funktion wird nicht unterstützt. Der Aufruf wird mit ENOSYS zurückgewiesen.

mkdir(), rmdir()

Die Funktionen werden immer mit ENOSYS zurückgewiesen.

open() mit O_RDWR unter ftyp=text oder ftyp=textbin

Bei Textdateien (ftyp=text oder ftyp=textbin) vom Typ SAM erzwingt CRTE im Zusammenspiel mit SAM wegen fopen(...,"r+") im bs2fs-Dämon, dass die bestehende Satzstruktur erhalten bleibt, d.h. es muss in dem nach open() vorhandenen Dateibereich jedes Newline unverändert an der Stelle bleiben, an der es steht, und es darf kein Newline eingefügt werden. Am Ende der bisherigen Datei dürfen neue Sätze angefügt und verändert werden.

readlink()

Die Funktion wird immer mit ENOSYS zurückgewiesen.

remove(), unlink()

Die Funktionen werden nur auf Datei- und Elementebene akzeptiert. Andernfalls werden sie mit EISDIR zurückgewiesen.

rename()

Die Funktion wird nur auf Datei- und Elementebene akzeptiert. Andernfalls wird sie mit EISDIR zurückgewiesen. Es ist jedoch möglich, Dateien in Elemente umzuwandeln oder umgekehrt, z.B. mit dem cp- oder mv-Kommando. Elemente des Basistyps L können jedoch nicht in Dateien oder Textelemente umbenannt werden, Dateien und Elemente der Basistypen D, J, M, P, S, X können jedoch nicht in Elemente des Basistyps L umbenannt werden. Das Umbenennen eines Elements des Basistyps X in ein Text-Element (Basistyp D, J, M, P oder S) kann den Inhalt verfälschen. Ist das Ziel parallel im BS2000 oder einem anderen bs2fs-Dateisystem schreibend geöffnet, wird rename() mit EAGAIN abgewiesen.

rmdir()

Die Funktion wird immer mit ENOSYS zurückgewiesen.

fstat(), stat()

Beziehen sich stat() bzw. fstat() auf eine Datei in einem bs2fs-Dateisystem, so hängt die gelieferte Information davon ab, ob die Datei geöffnet ist oder nicht. Ist die Datei geöffnet, dann wird die Dateigröße bytegenau geliefert, und die Zeitstempel werden in Mikrosekundengenauigkeit geliefert, so wie es für POSIX-Dateien üblich ist. Ist die Datei nicht geöffnet, dann liefert stat() die Größe der Datei so wie sie im BS2000 angegeben wird (also in Vielfachen von 2K-Blöcken), und die Zeitstempel sind nur sekundengenau, die Felder mit den Mikrosekundenanteilen sind dann immer 0.

symlink()

Die Funktion wird immer mit ENOSYS zurückgewiesen.

utime(), utimes()

Die Funktionen werden nur auf Datei- und Elementebene akzeptiert. Andernfalls werden sie mit EISDIR zurückgewiesen. Das Feld st_ctime des Dateistatus wird nicht verändert (vgl. chmod). Das Führen der Zugriffszeitstempel (Access-Time st_atime) von Elementen ist eine spezielle Bibliothekseigenschaft, die mit LMS oder LMSUP gesetzt werden kann; standardmäßig werden für Elemente keine Zugriffszeitstempel erfasst; stat() gibt dann den Zugriffszeitstempel der Bibliothek aus. Zu welchem Zeitpunkt die Zeitstempel (Access-Time st_atime, Modification-Time st_mtime) für Verzeichnisse (Root-Verzeichnis eines bs2fs-Dateisystems, Verzeichnisse auf Bibliotheks- und Typebene) aktualisiert werden, ist undefiniert. Es kann nur der aktuelle Zeitstempel gesetzt werden. Weicht der angegebene Zeitwert um mehr als +/-3600 Sek vom aktuellen Zeitstempel ab, wird der Aufruf ignoriert.