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
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?
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
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:
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.
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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden