Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Compiler-Ein-/Ausgaben im POSIX-Dateisystem

&pagelevel(4)&pagelevel

Der C/C++-Compiler unterstützt zusätzlich zum BS2000-Dateisystem (DVS-Dateien, PLAM-Bibliotheken etc.) das POSIX-Dateisystem. Sämtliche Ein- und Ausgaben des Compilers in einem Übersetzungs-, Präprozessor- oder Syntax-Analyse-Lauf können auch über POSIX-Dateien erfolgen.
Im Einzelnen sind dies:

  • die Eingabe von Quellprogrammen (siehe SOURCE-Option in den Anweisungen COMPILE, PREPROCESS, CHECK-SYNTAX)

  • die Eingabe von Include-Dateien (siehe Optionen USER-INCLUDE-LIBRARY und STD-INCLUDE-LIBRARY in der MODIFY-INCLUDE-LIBRARY-Anweisung)

  • die Ausgabe von LLMs (siehe MODULE-OUTPUT-Option in der COMPILE-Anweisung)

  • die Ausgabe von expandierten Quellprogrammen (siehe OUTPUT-Option in der PRE-PROCESS-Anweisung)

  • die Ausgabe von Übersetzungslisten (siehe OUTPUT-Option in der MODIFY-LISTING-PROPERTIES-Anweisung)

  • die Ausgabe von Meldungslisten (siehe OUTPUT-Option in der MODIFY-DIAGNOSTIC-PROPERTIES-Anweisung)

  • die Ausgabe von CIF-Informationen (siehe OUTPUT-Option in der MODIFY-CIF-PROPERTIES-Anweisung)

Beliebige Mischfälle, d.h. die Ein- und Ausgabe sowohl von BS2000- als auch von POSIX-Dateien in einem Übersetzungslauf, sind möglich.

Ablage der Quellprogramm- und Include-Dateien

Die Quellprogramm- und Include-Dateien können in EBCDIC- und ASCII-Code vorliegen. Im POSIX-Dateisystem ist der EBCDIC-Code voreingestellt, in Dateisystemen auf fernen UNIX-Rechnern oder PCs der ASCII-Code. Alle Dateien eines Dateisystems (POSIX-Dateisystem oder eingehängtes fernes Dateisystem) müssen jeweils im selben (voreingestellten) Codeset vorliegen. Der Compiler fragt das Codeset eines Dateisystems zentral und nicht pro einzelne Datei ab. Dateien eines ASCII-Dateisystems werden intern für die Übersetzung nach EBCDIC konvertiert, wenn die Umgebungsvariable SYSPOSIX.IO-CONVERSION den Wert YES hat (siehe Abschnitte „Umgebungsvariablen" und „Unterstützung von Dateisystemen in ASCII" im Handbuch „C-Bibliotheksfunktionen“ [2] ).

Im Unterschied zur Programmentwicklung in der POSIX-Shell (siehe Handbuch „POSIX-Kommandos des C/C++-Compilers“ [1]), müssen die Dateinamen der Quellprogramme nicht unbedingt eines der Standard-Suffixe „.c“, „.C“, „.i“ etc. enthalten.

Ausgabe von LLMs

Die vom Compiler erzeugten LLMs können in POSIX-Objektdateien („.o“-Dateien) geschrieben werden. Eine sinnvolle Weiterverarbeitung dieser Objektdateien ist nur im POSIX-Subsystem mit den Kommandos cc, c11, c89 oder CC möglich (siehe Handbuch „POSIX-Kommandos des C/C++-Compilers“ [1]). In UNIX-Systemen wird das erzeugte Objektdatei-Format (LLM) nicht unterstützt.

Sonstige Compilerausgaben

  • Expandierte, weiterübersetzbare Quellprogramme

    Das Ergebnis eines Präprozessorlaufes kann in eine POSIX-Quelldatei („.i“-Datei in C, „.I“-Datei in C++) geschrieben werden. Diese Datei kann in der POSIX-Shell mit den Kommandos cc, c89 oder CC weiterverarbeitet werden, in BS2000-Umgebung über die SDF-Schnittstelle des C/C++-Compilers.

  • Übersetzungslisten

    Die Übersetzungslisten können in eine POSIX-Listendatei („.lst“-Datei) geschrieben werden. Diese Listendatei kann in der POSIX-Shell mit dem Kommando bs2lp ausgedruckt werden, in BS2000-Umgebung mit dem SDF-Kommando PRINT-DOCUMENT.

  • Diagnosemeldungen

    Die Fehlermeldungen des Compilers können in eine POSIX-Datei („.diag“-Datei) geschrieben werden. Diese Datei kann beispielsweise mit dem EDT in der POSIX-Shell (Kommando edt) und in BS2000-Umgebung gelesen werden (vgl. Hinweise zum EDT, "Editieren von Quellprogrammen").

  • CIF-Informationen

    Die CIF-Informationen für die Erstellung von globalen Listen können in eine POSIX-Datei („.cif“-Datei) geschrieben werden. Diese CIF-Dateien können in der POSIX-Shell mit dem Kommando cclistgen weiterverarbeitet werden (siehe Handbuch „POSIX-Kommandos des C/C++-Compilers“ [1]), in BS2000-Umgebung über die SDF-Schnittstelle des globalen Listengenerators (siehe START-CPLUS-LISTING-GENERATOR, "Steuerung des globalen Listengenerators").

Ausgabe-Codeset

Das Ausgabe-Codeset der Dateien (EBCDIC oder ASCII) richtet sich nach dem Codeset des Zieldateisystems. Im POSIX-Dateisystem werden die Dateien vom Compiler im EBCDIC-Code abgelegt, in Dateisystemen auf UNIX-Rechnern im ASCII-Code, wenn die Umgebungsvariable SYSPOSIX.IO-CONVERSION den Wert YES hat (siehe Abschnitte „Umgebungsvariablen" und „Unterstützung von Dateisystemen in ASCII" im Handbuch „C-Bibliotheksfunktionen“ [2] ).

Es wird nur EBCDIC-Ablaufcode erzeugt. Z.B. werden die Namen externer Entries nur im EBCDIC-Code abgelegt.

Beschreibung des Begriffes <posix-pathname>

Bei der Angabe von <posix-pathname> als Eingabe oder Ausgabe kann folgendes angegeben werden:

  • ein Dateiname ohne Pfad-Angabe

  • ein relativer Pfad zu einer Datei

  • ein absoluter Pfad zu einer Datei

  • ein relativer Pfad zu einem Dateiverzeichnis

  • ein absoluter Pfad zu einem Dateiverzeichnis

Ist kein absoluter Pfad vorhanden, so wird der Name/Pfad relativ zum Home-Dateiverzeichnis des Benutzers interpretiert.

Alle Dateiverzeichnisse im Pfad müssen bereits existieren.

Wird eine Eingabe-Datei verlangt, so darf kein Dateiverzeichnis angegeben werden. Wird ein Eingabe-Dateiverzeichnis verlangt, so darf keine Datei angegeben werden.

Die Angabe einer Ausgabe-Datei ist nur sinnvoll, wenn eine einzelne Source bearbeitet wird. Werden mehrere Sourcen bearbeitet, ist die Angabe einer Ausgabe-Datei in der Regel unzulässig.
Bei der Bildung der Dateinamen ist zu beachten, dass die Ausgabe-Datei im POSIX-Subsystem nur sinnvoll weiterverarbeitet werden kann, wenn der Name einen passenden Suffix enthält.
Wird ein Dateiverzeichnis angegeben, so bestimmt der Compiler selbst den Namen der Ausgabe-Datei (siehe Abschnitt „Standardnamen für Ausgabebehälter“).