Hallo Leute, ich brauche eure Hilfe, von einem Linux-Prozessor sende ich einen String über die serielle Schnittstelle zum Mikrocontroller. Jetzt möchte ich den selben String per Kommando senden. Kann jemanden mir sagen wie kann ich das Programm einfach verändert, damit ich jetzt das Argument argv[0]= "Hello World" mit der Funktion writeport sende. Danke schön für alle Antwörte
> argv[0]= "Hello World"
Wenn es grad argv[0] sein soll, musst du das Programm einfach umbennen.
Also:
mv AltesProgramm "Hello World"
Ein Link geht natürlich auch:
ln AltesProgramm "Hello World"
Starten dann mit:
./"Hello World"
Ich bezweifle nur, dass es das was du willst :-)
Eher solltest du:
s/strcpy( sCmd,"Hello World");/strcpy( sCmd, argv[1]);/
probieren.
P.S.:
Das s/bla/blub/ ist ein ed/vi-Kommando und ersetzt die Zeichenkette bla
durch blub.
Viel Spass...
hallo, mit der Veränderung wird gar nicht passiert. in der Konsole habe ich: argv[0] = ./senden argv[1] = Hello World Danke
Wenn Du in der Konsole mehrere Argumente angibst, wäre folgendes sinnvoller:
1 | for (i = 1; i < argc; i++) |
2 | {
|
3 | if (!writeport(fd, argv[i])) |
4 | {
|
5 | printf("write failed\n"); |
6 | close(fd); |
7 | return 1; |
8 | }
|
9 | printf("written:%s\n", argv[i]); |
10 | }
|
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.