POSIX-Dateien enthalten keine Datensätze, sondern sie sind byte-orientiert. BS2000-Dateien dagegen enthalten satzorientierte und/oder PAM-Block-orientierte Daten.
POSIX behandelt Dateien standardmäßig im EBCDIC-Format, UNIX-Systeme, MS-DOS und Windows im ASCII-Format. Im POSIX-Dateisystem abgelegte ASCII-Dateien können in der POSIX-Shell nur bearbeitet werden, wenn sie vorher konvertiert wurden.
Damit Dateien der beiden Formate wechselseitig benutzt werden können, stehen Kopier- und Konvertierungsroutinen zur Verfügung. Dabei wird vom Zeichensatz EBCDIC.DF.03 in den ASCII-ISO-7-Bit-Code konvertiert und umgekehrt. Diese Konvertierung ist nur für Textdateien sinnvoll.
Zusätzlich stehen Konvertierungsroutinen zur Verfügung, um vom Zeichensatz EBCDIC.DF.04 in den 8-Bit-Zeichensatz (ISO 8859) zu konvertieren und umgekehrt.
Automatische Konvertierung
Mit der Umgebungsvariable IO_CONVERSION wird gesteuert, ob Dateien beim Zugriff mit POSIX-Kommandos (z.B. awk, cat, grep...) auf montierte ASCII-Dateisysteme automatisch konvertiert werden. Standardmäßig ist die Umgebungsvariable IO_CONVERSION mit dem Wert „NO“ belegt, d.h. es erfolgt keine automatische Konvertierung. Die automatische Konvertierung wird mit folgendem Kommando eingeschaltet:
export IO_CONVERSION=YES
Als ASCII-Dateisysteme werden behandelt:
Ferne mit NFS eingehängte UNIX-/Windows-Dateisysteme
Lokale POSIX-Dateisysteme mit POSIX-Dateisystem-Marker=N
Ferne mit NFS eingehängte POSIX-Dateisysteme mit POSIX-Dateisystem-Marker=N
Falls die automatische Konvertierung für einen POSIX-Benutzer bereits beim Starten der POSIX-Shell voreingestellt sein soll, muss dieses export-Kommando in die Datei .profile im HOME-Verzeichnis dieses Benutzers eingetragen werden.
Bei Verwendung der folgenden Tools darf die automatische Konvertierung nicht eingeschaltet sein, da diese Tools selbst konvertieren:
dd, iconv, bs2cp mit Schalter -k.
Behandlung von Archiven/Bibliotheken:
ar konvertiert nicht automatisch, da ar-Bibliotheken oft binäre Daten enthalten.
pax und tar konvertieren automatisch. Ein pax- oder tar-Archiv darf jedoch nicht mit cp kopiert werden, wenn die automatische Konvertierung eingeschaltet ist.
Bild 8: Austausch und Konvertierung von Dateien
Dateien von POSIX nach BS2000 übertragen (aus Sicht der POSIX-Shell):
Mit dem POSIX-Kommando bs2cp übertragen Sie Dateien von POSIX nach BS2000. Sie müssen nicht die Option -k angeben, wenn in beiden Dateisystemen die Dateien im EBCDIC-Zeichensatz vorliegen.
Zusätzlich können Sie für die BS2000-Datei noch Dateiattribute bestimmen. Dazu müssen Sie vor dem Kopierkomemando bs2cp mit dem POSIX-Kommando bs2file die BS2000-Dateiattribute festlegen. bs2file wird auf das BS2000-Kommando SET-FILE-LINK abgebildet.
Dateien von BS2000 nach POSIX übertragen (aus Sicht der POSIX-Shell):
Mit dem POSIX-Kommando bs2cp übertragen Sie Dateien von BS2000 nach POSIX. Sie müssen nicht die Option -k angeben, wenn in beiden Dateisystemen die Dateien im EBCDIC-Zeichensatz vorliegen.
Abhängig von der Art der BS2000-Datei (SAM, ISAM) ist folgendes zu berücksichtigen:
Bei SAM-Dateien können Sie wählen, ob die Datei als Textdatei, als Binärdatei oder als binäre Textdatei im POSIX-Dateisystem hinterlegt wird. Dazu müssen Sie vor dem Kopierkommando bs2cp noch die Bearbeitungsart der Datei mit dem POSIX-Kommando ftyp festlegen.
ISAM-Dateien werden generell als Textdateien im POSIX-Dateisystem abgelegt.
Zur Konvertierung innerhalb eines POSIX-Dateisystems dient das POSIX-Kommando iconv. Es werden die Datei-Inhalte konvertiert.