Dokumentation zu: GetOpt(L)

HR Image


FUNKTION:
	int GetOpt(string *cmdline, string opts, string cmd)

IMPLEMENTIERT:
	/std/shells/filesys/filesys.c

ARGUMENTE:
	cmdline:   Rueckgabewert von glob(L)
	opts:      Info ueber die erwarteten Schalter
	cmd:       Name des Kommandos (oder Null)

BESCHREIBUNG:
	Mit dieser Funktion kann man die bei einem Kommando angegebenen
	Schalter sehr leicht bestimmen. Nachdem glob() die Vorarbeit
	geleistet hat, liefert GetOpt() einen Integerwert zurueck, bei
	dem jedes Bit einem moeglichen Schalter entspricht. Wurde er
	angegeben (auch mehrfach), so ist dessen Bit gesetzt.

	Welche Schalter angegeben werden duerfen bzw welches Bit fuer
	sie zustaendig sein soll, ist mit 'opts' spezifiziert. Dies ist
	einfach ein String aus den erlaubten Schalterbuchstaben in
	der Art "lacp". Hier sind die Schalter -l -a -c -p (und deren
	Kombinationen, zB "-la" "-l -a") erlaubt. Dabei ist 'l' in
	Bit 0, 'a' in Bit 1, 'c' in Bit 2 und 'p' in Bit 3 des
	Rueckgabewertes.

	Wenn 'cmd' angegeben ist und in der 'cmdline' ein Schalter
	benutzt wurde, der nicht in 'opts' auftaucht, so wird
	eine Fehlermeldung an TP ausgegeben in der Art:
	cmd: illegal flag 'x'

	Mit Doppelminus beginnende Schalter (typischerweise werden diese
	fuer Langnamen-Schalter verwendet, also --help) werden hier
	ignoriert.

	Die 'cmdline' kann auch als Referenz uebergeben werden. In diesem
	Fall werden aus dem Array alle als Schalter erkannten Textstuecke
	entfernt. Da man deren Information nun als Integerflags hat
	ist dies auch das, was man wohl meistens haben moechte.
	Siehe hierzu das 2. Beispiel und references(LPC).

RÜCKGABEWERT:
	Ein Integer, bei dem diejenigen Bits gesetzt sind, die zu den
	in dem Kommando spezifizierten Schalter gehoeren. Wenn ein
	unbekannter Schalter angegeben wurde, wird -1 zurueckgegeben.

BEISPIEL:
	string* cmdline;
	int flags;

	cmdline = glob("-ds \"help \\\"blah*\"", 1);
	flags   = GetOpt(cmdline, "adgfs", 0);
	
	flags ist nun 18, da Bit 1 (Wertigkeit 2) fuer das 'd' und
	Bit 8 (Wertigkeit 16) fuer das 's' gesetzt wurden.

	Hier nochmal dasselbe, allerdings ist in dem Array cmdline
	jedes Element entfernt, welches Flags enthaelt, also in
	diesem Fall das "-ds".

	cmdline = glob("-ds \"help \\\"blah*\"", 1);
	flags   = GetOpt(&cmdline, "adgfs", 0);

SIEHE AUCH:
	glob(L), references(LPC)


Start » Magierhandbuch » Docu » Lfun » GetOpt Letzte Generierung: 25.04.2021, 01:58
Email an: mud@wl.mud.de
Valid HTML 4.01!