Frage

Ich versuche, einen Code aus einer separaten Binärdatei zu verschieben und in meinem Hauptprogramm zu haben. Leider kann ich die Initialisierungsvariablen für die Hauptfunktion nicht nachahmen.

Wie kann ich erstellen? argc und argv von Hand? Kann mir jemand einige Beispielaufgaben geben?

Da sieht es so aus:

int main(int argc, char *argv[])

Ich dachte, ich könnte sie so zuweisen:

int argc=1;
char *argv[0]="Example";

Aber es funktioniert nicht. Kann mir jemand sagen, wie das möglich sein könnte?

War es hilfreich?

Lösung

int argc = 3;
char *argv[4];
argv[0] = "fake /path/to/my/program";
argv[1] = "fake arg 1";
argv[2] = "fake arg 2";
argv[3] = NULL;
fakemain(argc, argv);

Andere Tipps

Das letzte Element der argv[] Array ist eigentlich argv[argc] die ein NULL Zeiger.

Ein Beispielcode:

char *argv[] = { "first", "second", NULL }; 
int argc = sizeof(argv) / sizeof(*argv) - 1;

Warum solltest du das tun? Wenn Sie eine IDE verwenden, besteht eine Option zum Hinzufügen der Befehlszeilenoption. Wenn Sie das Programm direkt anrufen, rufen Sie es einfach mit den Befehlsoptionen an

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top