program_invocation_name unter mingw?

Gast #4968370
Unter Linux mit der glibc gibt ja diese externe Variable um den Namen 
des eigenen Programms zu finden. Wenn ich ein wenig portabel 
programmieren möchte (nur ein wenig), wie macht das unter Windows? Geht 
das mit mingw und gcc? windows.h will ich jedenfalls nicht einbinden.

Bonusfrage: geht das unter xBSD? Ja, da gibt's getprogname(), deshalb 
ist es nicht so wichtig. Danke schon mal für sachdienliche Hinweise!
#4968765
Timmo H. schrieb:
> printf("%s\n", argv[0]);
>
> ist nicht ausreichend?

Sollte es sein, denn laut man-Page:
1
      program_invocation_name contains the name that was used to invoke the
2
       calling program.  This is the same as the value of argv[0] in main(),
3
       with the difference that the scope of program_invocation_name is
4
       global.
Gast #4969289
Grummel, alles muss man selber machen (basename() ist ja auch nicht so 
eindeutig definiert). Aber gut, wenn ihr meint, zurück zur Natur (oder 
so).

Zwischendurch gab es größere Probleme. Das CRC-Modul vom STM32 ging 
nicht:
1
RCC->AHB1ENR |= 1 < AHB1_CRC;
Der gcc findet aber auch garnichts ;)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.