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 - Fehlermeldung ausgeben

&pagelevel(4)&pagelevel

Definition

#include <stdio.h>

void *perror(const char *s);

perror schreibt auf die Standardfehlerausgabe eine Fehlermeldung, entsprechend dem Fehlercode in der C-internen Variablen errno. Zunächst wird eine als Argument übergebene Zeichenkette s ausgegeben, gefolgt von einem Doppelpunkt und dem kurzen Fehlertext aus <errno.h>; die Meldung wird mit einem Neue-Zeile-Zeichen abgeschlossen:

s : <kurze Fehlermeldung>\n

Als Fehlerinformationen erhalten Sie:

  • einen Text, der den Fehler kurz beschreibt,

  • den Namen der fehlerhaften Funktion und

  • ggf. den DVS-Fehlercode (sedezimal).

Hinweise

Die errno-Fehlertexte enthalten z.B. bei Ein-/Ausgabefehlern oder bei der Ausführung von Systemkommandos als zusätzliche Information den entsprechenden DVS-Fehlercode.
Eine Auflistung aller errno-Fehlercodes und Fehlertexte finden Sie in der Include-Datei <errno.h>.

Wird als Argument s ein NULL-Zeiger übergeben, wird lediglich der errno-Fehlertext ausgegeben.

Der Inhalt des Bereichs, in dem der Fehlercode 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, unmittelbar nachdem eine Funktion einen Fehler-Returnwert geliefert hat.

Bei KR-Funktionalität (nur bei C/C++ Versionen kleiner V3.0 vorhanden) wird ein Returnwert vom Typ char * geliefert. Er enthält einen Zeiger auf einen C-internen Speicherbereich, in der die Fehlermeldung steht. Der Inhalt wird bei jedem perror-Aufruf überschrieben.

Beispiel

Folgendes Programm öffnet die Datei dat zum Lesen. Ist die Datei nicht vorhanden, erhält man folgende Fehlermeldung auf die Standardausgabe:

Programm fopen: dataset not found (cmd: OPEN), errorcode=DD33

DD33 ist dabei der DVS-Fehlercode.

#include <stdio.h>
int main(void)
{
  FILE *fp;
  if((fp = fopen("dat", "r")) == NULL)
    perror("Programm fopen");
  return 0;
}