C: Segmentation fault

Westbär

Mitglied
Hallo,
Ich schreibe gerade an einem C Script.
Das Script läuft zwar, jedoch kommt immer am ende Segmentation fault, welches auch if fragen blockiert.

C:
#include <stdio.h>

int main(int argc, char *argv []) {
    char c = 'M';
    char con_d[] = "";
            
    printf("Scanning the Linux kernel (download from kernel.org)...");
    system("wget http://www.kernel.org/kdist/finger_banner 2>/dev/null");
    system("mv finger_banner .linux_banner");
    printf(" Done \n\n");
    printf("Download the current kernel? [Yes/No] \n");
    scanf("%s",&con_d);
    if(con_d == "Yes") {
	printf("dd");
    }
    
    return 0;
}

con_d ist die Frage (Yes/No) (String)
Und dann möchte ich noch eine weitere String-Variable hinzufügen, den teil mach ich aber später.

Editor: Midnight Commander und Nano
Compiler: GCC 4.1.2


Ich hoffe es kann mir wer helfen,

Gruß
 
Hi

Zeichenketten solltest du immer mit der Funktion strcmp vergleichen.

Gruß Benny

ps: Nur zur Information, C ist keine Scriptsprache.
 
Hallo,

mit der Zeile char con_d[] = ""; reservierst du ein Byte Speicherplatz. Für das "Yes" ist das etwas wenig, daher ein Absturz bei "scanf".
Der Fehler mit dem Stringvergleich wurde ja schon genannt.

Gruß
MCoder
 
Dank dem Link von oben und dessen Beispieltutorial habe ich es jetzt geschafft.

Vielen Dank, MCoder und kle-ben.

Gruß

PS: Das Script bin ich von PHP gewohnt, tut mir leid ;)
 
Zurück