Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

BS2000-Systemdateien

&pagelevel(5)&pagelevel

Den Datenströmen entsprechen im BS2000 die Systemdateien. Deren Funktionalität ist relevant, wenn eine Funktion mit BS2000-Funktionalität aufgerufen wurde.

SYSDTA

Ein C-Programm kann SYSDTA folgendermaßen verwenden:

  • Mit einer Öffnungsfunktion (fopen(), freopen(), open()) wird eine Datei mit dem Namen "(SYSDTA)" oder "(SYSTERM)" zum Lesen geöffnet. Der von der Öffnungsfunktion gelieferte Dateizeiger dient dann als Argument einer anschließenden Eingabefunktion.

    Beispiel

    FILE *fp;
    fp = fopen("(SYSDTA)", "r");
    fgetc(fp);
  • Bei Eingabefunktionen wird als Dateiargument der Dateizeiger stdin bzw. der Dateideskriptor 0 angegeben.

    Beispiele

    fgetc(stdin);

    read(0, buf, n);

  • Es werden Eingabefunktionen benutzt, die standardmäßig von stdin lesen (z.B. scanf(), getchar(), gets()).

Soll die Eingabe nicht vom Terminal aus erfolgen, sondern aus einer katalogisierten Datei, kann dies auf zweierlei Weise geschehen:

  1. Wurde mit PARAMETER-PROMPTING=YES (in der Compiler-Option RUNTIME-OPTIONS) eine Parameterzeile angefordert, kann in dieser Parameterzeile die Standardeingabe (Dateizeiger stdin bzw. Dateideskriptor 0) auf eine katalogisierte Datei umgewiesen werden (siehe auch C- und C++-Benutzerhandbücher).

    Diese Umlenkung wirkt sich nicht auf Dateien aus, die mit dem Namen "(SYSDTA)" bzw. "(SYSTERM)" geöffnet werden. Die Eingabe aus Dateien dieses Namens wird nach wie vor vom Terminal erwartet.

  2. Vor Programmstart mit dem Kommando ASSIGN-SYSDTA dateiname.

    Bei allen Eingabefunktionen werden die Eingabedaten dann aus der zugewiesenen Datei erwartet.

    Bei der Zuweisung mit dem ASSIGN-SYSDTA-Kommando ist Folgendes zu beachten:

    • Nach Programmablauf steht der interne Satzzeiger hinter dem zuletzt gelesenen Satz bzw. auf Dateiende. Soll die Datei in einem weiteren Programmlauf wieder ab Dateianfang eingelesen werden, muss vor dem Programmstart ein neues ASSIGN-SYSDTA-Kommando abgesetzt werden.

    • Wurde PARAMETER-PROMPTING=YES (in der RUNTIME-OPTIONS-Option) gewählt, so wird der erste Satz der zugewiesenen Datei als Parameterzeile für die main-Funktion interpretiert.

Hinweis

Ist im C-Programm kein anderes Endekriterium vereinbart, lässt sich die EOF-Bedingung bei Eingaben am Terminal folgendermaßen erreichen: K2-Taste drücken und die Kommandos EOF und RESUME-PROGRAM eingeben.

SYSOUT

Ein C-Programm kann SYSOUT folgendermaßen verwenden:

  • Mit einer Öffnungsfunktion (fopen(), freopen(), open()) wird eine Datei mit dem Namen "(SYSOUT)" oder "(SYSTERM)" zum Schreiben geöffnet. Der von der Öffnungsfunktion gelieferte Dateizeiger dient dann als Argument einer anschließenden Ausgabefunktion.

    Beispiel

    FILE *fp;
    fp = fopen("(SYSTERM)", "w");
    fputc(fp);
    
  • Bei Ausgabefunktionen wird als Dateiargument der Dateizeiger stdout bzw. der Dateideskriptor 1 angegeben.

    Beispiele

    fputc(stdout);

    write(1, buf, n);

  • Bei Ausgabefunktionen wird als Dateiargument der Dateizeiger stderr bzw. der Dateideskriptor 2 angegeben.

  • Es werden Ausgabefunktionen benutzt, die standardmäßig auf stdout/stderr schreiben, z.B. printf(), puts(), putchar() bzw. perror().

Wurde mit PARAMETER-PROMPTING=YES (in der Compiler-Option RUNTIME-OPTIONS) eine Parameterzeile angefordert, kann in dieser Parameterzeile die Standardausgabe (Dateizeiger stdout bzw. Dateideskriptor 1) und die Standard-Fehlerausgabe (Dateizeiger stderr bzw. Dateideskriptor 2) auf eine katalogisierte Datei umgewiesen werden (siehe auch C- und C++-Benutzerhandbücher).

Diese Umlenkung wirkt sich nicht auf Dateien aus, die mit dem Namen "(SYSOUT)" bzw. "(SYSTERM)" geöffnet wurden.

SYSLST

Ein C-Programm kann SYSLST folgendermaßen verwenden:

  • Mit einer Öffnungsfunktion (fopen(), freopen(), open()) wird eine Datei mit dem Namen "(SYSLST)" zum Schreiben geöffnet. Der von der Öffnungsfunktion gelieferte Dateizeiger dient als Argument einer anschließenden Ausgabefunktion.

    Beispiel

    FILE *fp;
    fp = fopen("(SYSLST)", "w");
    fprintf(fp, "\t TEXT \n");
    
  • Wurde mit PARAMETER-PROMPTING=YES (in der Compiler-Option RUNTIME-OPTIONS) eine Parameterzeile angefordert, kann in dieser Parameterzeile die Standardausgabe bzw. die Standard-Fehlerausgabe auf SYSLST umgelenkt werden (siehe auch C- und C++-Benutzerhandbücher).

    Diese Umlenkung wirkt sich nicht auf Dateien aus, die mit dem Namen "(SYSOUT)" geöffnet wurden.

Standardmäßig werden SYSLST-Dateien automatisch bei Taskende (LOGOFF) ausgedruckt.

Sollen die Daten nicht automatisch auf den Drucker, sondern in eine katalogisierte Datei ausgegeben werden, muss vor Programmablauf SYSLST umgelenkt werden. Dies geschieht mit dem Kommando ASSIGN-SYSLST dateiname.