Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

Segmentation fault

(Anonym) / 2 Antworten / Baumansicht Nickles

Hallo,
bin Anfaenger unter Linux und verstehe etwas nicht

Verwende Suse 7.0
GNU 2.95.2

Beispiel :
.....
char *xx;
int i;
xx = getenv("TMPDIR"); /* TMPDIR ist nicht gesetzt */
i = strlen(xx); /* geht an dieser Stelle kaputt */
......

Das Programm laeuft ebenfalls mit GNU 2.95.2 auf anderen UNIX-Systemen
z.B UnixWare,HPUX,Sun einwandfrei nur unter Suse nicht.
Vielleicht kann mir einer das Erklaeren oder weiss eine Loesung dafuer.
Danke im Voraus
bei Antwort benachrichtigen
thomas woelfer (Anonym) „Segmentation fault“
Optionen

getenv() liefert NULL wenn die variable nicht gesetzt ist. strlen() darf keinen null pointer bekommen. i.ow.: du musst den return-wert von getenv() testen bevor du damit weiterarbeitest.

WM_HOPETHISHELPS
thomas woelfer

this posting contains no tpyos.
bei Antwort benachrichtigen
(Anonym) thomas woelfer „getenv liefert NULL wenn die variable nicht gesetzt ist. strlen darf keinen null...“
Optionen

Danke fuer die Antwort
aber warum funktioniert das Programm auf anderen
Unix- Systemen (Sun , HPUX , UnixWare )nur nicht
unter Suse obwohl der gleiche GNU verwendet wird.

bei Antwort benachrichtigen