parameterübergabe in linux

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/parameteruebergabe_in_linux_110077/page_1 - zur Vollversion wechseln!


x3 schrieb am 19.03.2004 um 10:50

Also mein prob:
Ich soll parameter übergeben, wie zb -u oder -l oder -of=datei
oder gemischt
nur wie finde ich herraus was der user nun eingegeben hat?
den mit:
int main(int argc, char *argv[])
hab i ja dann nur zahlen :(

tia
x3


Ringding schrieb am 19.03.2004 um 12:12

Das hat mit Linux gar nix zu tun.

Geh einfach das argv Array durch, da hast du jeden Parameter aufgelistet.


mat schrieb am 19.03.2004 um 12:13

kA (vl ists in linux wirklich anders) aber wie wärs wenn du das char * array nimmst :)

argv[0] -> 1. argument (ich glaub dass is aber das arbeitsverzeichnis oder so)
argv[1] -> 2. argument
..

edit: wenn du argv darstellst, wie auch immer, dann bekommst du natürlich eine zahl (speicheradresse) weils ein doppelpointer is -> char **


vossi schrieb am 19.03.2004 um 12:14

Zitat von x3
nur wie finde ich herraus was der user nun eingegeben hat?
den mit:
int main(int argc, char *argv[])
hab i ja dann nur zahlen :(

edit: g0t pwned by mat-the-machine :D


atrox schrieb am 19.03.2004 um 12:24

Code:
atrox@nexus:~$ ./argv -some option "this is a blank test"
argv[0]: './argv'
argv[1]: '-some'
argv[2]: 'option'
argv[3]: 'this is a blank test'
atrox@nexus:~$ cat argv.c
#include <stdio.h>

int main (int argc, char **argv) {
        int i;
        for (i=0; i<argc; i++) printf("argv[%d]: '%s'\n",i,argv[i]);
}


atrox schrieb am 19.03.2004 um 12:27

und gleich ein beispiel für die shell-expansion (was wohl der größte unterschied bei der behandlung von argumenten zwischen dos/win und unix ist):

Code:
atrox@nexus:~$ ./argv /proc/*
argv[0]: './argv'
argv[1]: '/proc/1'
argv[2]: '/proc/1100'
argv[3]: '/proc/1106'
argv[4]: '/proc/1107'
argv[5]: '/proc/1108'
argv[6]: '/proc/1109'
argv[7]: '/proc/1110'
argv[8]: '/proc/1125'
argv[9]: '/proc/1437'
argv[10]: '/proc/1501'
argv[11]: '/proc/16534'
argv[12]: '/proc/16809'
(...)
argv[92]: '/proc/mounts'
argv[93]: '/proc/mtrr'
argv[94]: '/proc/net'
argv[95]: '/proc/partitions'
argv[96]: '/proc/pci'
argv[97]: '/proc/self'
argv[98]: '/proc/slabinfo'
argv[99]: '/proc/stat'
argv[100]: '/proc/swaps'
argv[101]: '/proc/sys'
argv[102]: '/proc/sysrq-trigger'
argv[103]: '/proc/sysvipc'
argv[104]: '/proc/tty'
argv[105]: '/proc/uptime'
argv[106]: '/proc/version'




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025