Filename meines Programms auslesen



  • Guten Tag zusammen,

    ich bräuchte etwas Hilfe und wäre sehr dankbar wenn mir da jemand weiterhelfen könnte.

    Die Problemstellung ist folgende:
    Wie kann ich in C, meinen aktuellen Programmnamen in eine Variable abspeichern?

    Leider funktioniert argv[1] bei mir nicht, da die Variable mit dem Wert "dummyProgName" befüllt wird.

    Gibt es vielleicht einen anderen Weg den ich nehmen könnte um den aktuellen Programmnamen abzureifen?

    Hinweis: Ich bräuchte Zugriff auf den Dateinamen, da im Dateinamen der Port steht, der beim ausführen der Datei verwendet werden soll.

    Vielen Dank im Voraus.



  • War das nicht argv[0]?
    Ansonsten hängts vom Betriebssystem ab, wieviel Du kriegt.



  • In argv[1] steht der erste dem Programm übergebene Parameter, nicht der Programmname.
    Beim Aufruf

    "programm 1234"
    

    steht also in

    argv[0] -> "" oder "(optionalerpfad)/programm"
    

    und in

    argv[1] -> "1234"
    

    Deine Portnummer als int geht dann einfach:

    int pnr = atoi(argv[1]);
    


  • Fragen kann geschlossen werden.



  • Wutz schrieb:

    In argv[1] steht der erste dem Programm übergebene Parameter, nicht der Programmname.
    Beim Aufruf

    "programm 1234"
    

    steht also in

    argv[0] -> "" oder "(optionalerpfad)/programm"
    

    und in

    argv[1] -> "1234"
    

    Deine Portnummer als int geht dann einfach:

    int pnr = atoi(argv[1]);
    

    Vielen Dank an volkard und Wutz hat funktioniert.


  • Mod

    Bitte bestätige aber auch noch, dass du alleine auf die Idee gekommen bist, vor dem Auswerten von argv[1] zu prüfen, ob es überhaupt existiert, und nach dem Auswerten zu prüfen, ob atoi auch funktioniert hat.


Anmelden zum Antworten