lordy Geschrieben 28. August 2008 Geschrieben 28. August 2008 Obwohl ich kein C-Programmierer bin, habe ich mir mit Google's Hilfe ein kleines Programm gebacken, das vom Webserver als CGI ausgeführt werden soll. Unter Linux funktioniert das prima, unter OpenBSD produziert es jedoch einen "Segmentation Fault". Hat jemand eine Idee, woran das liegen könnte ? #include <stdio.h> int main(void) { printf("Status: 301\n"); printf("Location: https://meineseite.com/users/%s/\n",getenv("REMOTE_USER")); return 0; } Kompiliert wurde es jeweils mit (statisch für ein Chroot): gcc --static -o index.cgi index.c Zitieren
TDM Geschrieben 28. August 2008 Geschrieben 28. August 2008 Compiling such a program with a compiler that does not check for the assignment of read-only locations at compile time, and running it on a Unix-like operating system produces the following runtime error: [...] btw: Unter jedem Betriebssystem neu kompiliert? Zitieren
lordy Geschrieben 28. August 2008 Autor Geschrieben 28. August 2008 Natürlich neu kompiliert. Ein Kollege hier konnte zu meiner Überraschung doch C und hat mich auf "man getenv" unter OpenBSD hingewiesen. Dort steht, das man noch stdlib.h includen muß, was man unter Linux nicht braucht. Damit gehts jetzt auch Zitieren
TDM Geschrieben 28. August 2008 Geschrieben 28. August 2008 Natürlich neu kompiliert. Ein Kollege hier konnte zu meiner Überraschung doch C und hat mich auf "man getenv" unter OpenBSD hingewiesen. Dort steht, das man noch stdlib.h includen muß, was man unter Linux nicht braucht. Müsste doch eigentlich einen Fehler ausgeben, wenn man unter BSD kompiliert und da ne Header fehlt. :confused: Zitieren
Klotzkopp Geschrieben 28. August 2008 Geschrieben 28. August 2008 Müsste doch eigentlich einen Fehler ausgeben, wenn man unter BSD kompiliert und da ne Header fehlt. :confused: C ist recht nachsichtig, was fehlende Funktionsdeklarationen angeht, zumindest in der "alten" Standardversion von 1989. Zitieren
carstenj Geschrieben 28. August 2008 Geschrieben 28. August 2008 Hallo, wenn man das überprüft haben möchte, sollte man -Wall -pedantic als Optionen angeben. Dann ist der GCC noch entwas gesprächiger. Würde ich sowieso empfehlen, das standardmäßig zu nutzen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.