Getopt() Funktion - Problem/Frage dazu



  • hi,

    ich hab die getopt() Funktion entdeckt zur Verarbeitung von Kommandozeilenparametern. Was ich jetzt noch nicht herausgefunden hab ist, wie ich einen bestimmten Parameter als Pflichtparameter deklarieren kann. Der muss also definiti angegeben werden, wo im String ist egal, nur er muss halt da sein.

    wie muss ich das bei dem getopt() kommando entsprechend eintragen damit er mir einen fehler gibt wenn das zeichen fehlt.

    while ((c = getopt(argc, argv, "x:y:")) != -1)
    {
      //do
    }
    

    mein parameter y ist jetzt z.b. der, der aufjedenfall da sein muss (pfad zu einer konfigdatei oder so).

    Was muss ich machen, damt ich jetzt eine Fehlermeldung bekomme oder eine Fehlerbehandlung machen kann, wenn der parameter gänzlich nicht angegeben wurde. bietet getopt() dafür was oder muss ich mir da was basteln mit flags ob parameter verarbeitet wurde oder nicht?



  • Helfen die Manual-Pages da nicht weiter? man: getopt (3), man: getopt_long (3)



  • hm, ne ich seh da nix für den fall ds ich einen parameter komplett weglasse. evtl. liegt es ja an meinem englisch, aber ich lese da jetzt nicht raus wo mir das bei meinem problem weiter hilft.



  • Jonson23 schrieb:

    hm, ne ich seh da nix für den fall ds ich einen parameter komplett weglasse. evtl. liegt es ja an meinem englisch, aber ich lese da jetzt nicht raus wo mir das bei meinem problem weiter hilft.

    Hinweis:

    has_arg
    is: no_argument (or 0) if the option does not take an argument;
    required_argument (or 1) if the option requires an argument; or
    optional_argument (or 2) if the option takes an optional argu‐
    ment.

    Auf deinem System ist bestimmt auch die deutsche Manual-Page von getopt_long installiert. Gib doch mal auf der Konsole

    $ man 3 getopt_long
    

    ein.



  • Bei man.cx gibt es auch die deutschen manpages. Einfach auf den (3)/de-Link klicken: http://man.cx/getopt_long(3)/de


Log in to reply