2016-04-19 7 views
-3

Ich versuche, diesen Code unter Ubuntu zu laufen, aber wenn ich laufe den Code unten:argc und argv laufen nicht

#include <stdio.h> 
#include <stdlib.h> 
#include <unistd.h> 
#include <sys/types.h> 
#include <signal.h> 

int main(int argc , char agrv[3]){ 
    int pid ,sig; 
    sig = atoi(argv[1]); 
    pid = atoi(argv[2]); 
    kill(pid,sig); 
    return(0); 
} 

Er sagt, dass

ex02.c:10:13: error: ‘argv’ undeclared (first use in this function) 
sig = atoi(argv[1]); 
+1

Korrekte Deklaration ist 'int main (int argc, char * argv [])' 'argv' ist kein Array von char, sondern ein Array von char Zeiger. – LPs

+2

Skript? Ubunto ?? Ja wirklich??? –

+1

und weiter, 'argv' und' agrv' sind verschiedene Namen - Sie haben beide verwendet. – Useless

Antwort

0

Sie einen Tippfehler gemacht mit agrv und die Signatur für Haupt ist int main(int argv, char *argv[]).

argv ist ein Array von char * terminiert mit NULL. Jedes Element des Arrays bis zum NULL repräsentiert eine Zeichenfolge von Ihrer Befehlszeile.

#include <stdio.h> 
#include <stdlib.h> 
#include <unistd.h> 
#include <sys/types.h> 
#include <signal.h> 

int main(int argc, char *argv[]){ 
    int pid, sig; 
    sig = atoi(argv[1]); 
    pid = atoi(argv[2]); 
    kill(pid, sig); 
    return(0); 
} 
+0

** Saiten ** .... bitte nicht noch einmal: | – Michi

+1

Hey, komm schon, es ist eine C-Saite. – totoro

+0

Es gibt keine Zeichenfolgen in C. – Michi

1

Sie Fehler in der Definition Linie main gemacht, argv die Anordnung von char* Strings ist

int main(int argc, char *argv[]) 
{ 
/* 
other code here 
*/ 

} 
+4

... ist das Array von _pointers zu 'char'_ wird wahrscheinlich besser sein. – ForceBru

+0

Es gibt kein Array von char * Strings ich bin c. – Michi

+0

Danke Leute, ich fühle mich jetzt wirklich dumm. –

0

Das Problem in der Funktion Header Ihres main() liegt.

Es sollte so sein.

int main(int argc, char *argv[]) 
{ 
    //Function Body 
    return 0; 
} 

Der formale Parameter argv ist ein array of pointers to char. Und jeder Zeiger auf char enthält ein Argument, das an das Programm übergeben wird (auch der Name des Programms wird von argv [0] angezeigt).