Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

C Programm mit Optionen aufrufen

Diskussion: C Programm mit Optionen aufrufen im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Ich schreibe gerade ein kleines C Programm welches mit verschiedenen Optionen aufgerufen werden kann. Welche Option eingegeben wurde frage ...

Antwort
Alt 07.04.09, 12:51   #1 (permalink)
 
Registriert seit: 05.05.07
Punky Duck Leistung: Facit NTK
Likes: 0
Standard C Programm mit Optionen aufrufen

Anzeige

Ich schreibe gerade ein kleines C Programm welches mit verschiedenen Optionen aufgerufen werden kann.
Welche Option eingegeben wurde frage ich so ab:

Code:
while( (c1 = getopt(argc, argv, "si")) != EOF ){
		switch( c1 ){
			case 's':
				opt_s = true;
				break;
			case 'i':
				opt_i = true;
				break;
			case '?':
				usage();
				break;
			default:
				assert(0);
				break;
		}
	}
Funktioniert alles wunderbar. Nur möchte ich auch die Möglichkeit bieten gar keine Option anzugeben. Da komme ich jetzt immer in case'?' rein. Wie kann ich abfragen ob keine Option angegeben wurde?
Punky Duck ist offline   Mit Zitat antworten
Alt 07.04.09, 13:05   #2 (permalink)
 
Registriert seit: 31.03.08
MrSpider Leistung: Facit NTK
Likes: 0
Standard

Schon mal das ausprobiert?
Code:
while( (c1 = getopt(argc, argv, "si")) != -1 ){
...
}
MrSpider ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 07.04.09, 13:15   #3 (permalink)
Senior Member
 
Benutzerbild von lookshe
 
Registriert seit: 10.03.07
lookshe Leistung: 8086
Likes: 19
Standard

EOF ist normalerweise als -1 definiert, ist also genau das selbe...
Besser wäre es doch, vorher einfach abzufragen, ob überhaupt weitere Optionen/Argumente angegeben wurden und nur dann in die Schleife zu laufen.
lookshe ist offline   Mit Zitat antworten
Alt 07.04.09, 16:20   #4 (permalink)
Moderator
 
Registriert seit: 30.06.08
Chromatin Leistung: K 6-3Chromatin Leistung: K 6-3Chromatin Leistung: K 6-3Chromatin Leistung: K 6-3
Likes: 227
Standard

@lockshe
Jo. Er kann zb einfach argc testen und bei > 0 einfach getopt nutzen.

Oder ohne das:

Du kannst im default ein abort() machen und anhand einiger variablen zu getopt feststellen ob die argumentlist leer war.

zb:
Code:
int
main (int argc, char **argv)
{
  int aflag = 0;
  int bflag = 0;
  char *cvalue = NULL;
  int index;
  int c;

  opterr = 0;

  while ((c = getopt (argc, argv, "ab:")) != -1)
    switch (c)
      {
      case 'a':
        aflag = 1;
        break;
      case 'b':
        bflag = 1;
        break;
      default:
        abort ();
      }
  
 // hier abgrabschen und gucken
  printf ("aflag = %d, bflag = %d, cvalue = %s\n", aflag, bflag, cvalue);

  return 0;
}
__________________
Wenn ein Gesetz nicht gerecht ist, dann geht die Gerechtigkeit vor dem Gesetz!

Habo Blog - http://blog.hackerboard.de/
Chromatin ist offline   Mit Zitat antworten
Alt 07.04.09, 16:29   #5 (permalink)
Themenstarter
 
Registriert seit: 05.05.07
Punky Duck Leistung: Facit NTK
Likes: 0
Standard

Vielen Dank für die Antworten. Habs dank eurer Hilfe hinbekommen.
Punky Duck ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » C Programm mit Optionen aufrufen
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wo speichert MSN Messenger die Optionen? Vanillekipferl (In)security allgemein 3 21.02.09 15:21
ASM funktion in fremdem programm aufrufen lerpy Code Kitchen 0 05.08.08 15:09
Programm von einer anderen Sprache aufrufen sw33tlull4by Code Kitchen 2 01.11.07 23:19
Autoplay Optionen bearbeiten ,aber wie? Der.Schalker Die Problemzone 0 03.08.06 14:01
Programm mit dem ich über Proxyliste bestimmte Seite mehrmals mit verschied. Proxys aufrufen kann Ice Dreamer Internet Allgemein 9 29.05.06 15:43


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61