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!
printf("%s\n", argv[0]); ist nicht ausreichend? WinAPI: GetModuleFileName, aber windows.h willst du ja nicht. argv[0] ist zumindest das portabelste, wenns global sein soll kopierst du es halt in ein globales char array
:
Bearbeitet durch User
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. |
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 ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.