Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

perror - Meldung auf Standard-Fehlerausgabe ausgeben

&pagelevel(4)&pagelevel

Definition

#include <stdio.h>

void perror(const char *s);

Beschreibung

perror() bildet die Fehlernummer in der externen Variablen errno auf eine sprachabhängige Fehlermeldung error_message ab, die wie folgt in den Standard-Fehlerausgabestrom geschrieben wird:
s : error_message \n

s ist eine Zeichenkette, die zumindest den Namen des Programms enthalten sollte, in dem der Fehler auftrat. Wenn s der Nullzeiger oder das Zeichen, auf das s zeigt, das Nullbyte ist, fehlt der Meldungsteil "s : ".

Die Inhalte der Meldungen richten sich nach der Umgebungsvariablen LANG. Fehlernummern und Fehlermeldungen sind in errno.h vollständig aufgeführt und erläutert.

perror() kennzeichnet die Datei, die mit dem Standard-Fehlerausgabestrom verbunden ist, als beschrieben (st_ctime und st_mtime werden zum Ändern markiert). Dies geschieht zwischen der erfolgreichen Ausführung von perror() und einem Aufruf von exit(), abort() oder einem Zugriff von fflush() oder fclose() auf stderr.

Hinweis

Der Inhalt des Bereichs, in dem die Fehlernummer und der Fehlertext abgespeichert sind, wird nicht explizit gelöscht, d.h. der alte Inhalt bleibt solange erhalten, bis er bei neuerlichem Auftritt eines Fehlers mit den entsprechenden Informationen überschrieben wird.
perror-Aufrufe sind daher nur sinnvoll, nachdem eine Funktion einen Fehler-Returnwert geliefert hat.
Ob perror() für eine BS2000- oder eine POSIX-Datei ausgeführt wird, hängt von der Programmumgebung ab.

Der ausgegebene Meldungstext kann auch Inserts für POSIX-Fehlermeldungen enthalten.

BS2000
error_message enthält bei Ein-/Ausgabefehlern oder bei Ausführung von Systemkommandos als zusätzliche Information die entsprechende DVS-Fehlernummer.
Im KR-Modus (nur bei C/C++ Versionen kleiner V3 vorhanden) wird ein Returnwert vom Typ char * geliefert. Er enthält einen Zeiger auf einen C-internen Speicherbereich, in dem die Fehlermeldung steht. Der Inhalt wird bei jedem perror-Aufruf überschrieben (siehe auch Handbuch „C-Bibliotheksfunktionen“ [6]). Wenn das Programm in einer BS2000-Umgebung gestartet wird und die Datei nicht vorhanden ist, erhält man folgende Fehlermeldung auf die Standard-Ausgabe:
Programm fopen: dataset not found (cmd: OPEN), errorcode=DD33

DD33 ist dabei die DVS-Fehlernummer. (Ende)

Siehe auch

strerror(), errno.h, stdio.h, Abschnitt "Wahl der Funktionalität“.