Programm Executable Namen ermitteln
-
Hi,
ich müsste folgende funktion von einem anderen System auf Unix portieren und zwar die Funktion:
char* _prgname( void )
die den Namen der aktuellen executable zurückliefert.
gibt es vielleicht ne möglichkeit an einer beliebigen stelle im Programm an argv ranzukommen? oder irgendeine andere funktion die mir weiterhelfen könnte?
Vielen dank im voraus
template
-
Eine Funktion dazu fällt mir im Augenblick nicht ein, du könntest den Wert höchstens global speichern und dann abrufen:
char* myname; void printname(void) { sprintf("%s\n",myname; } int main(int argc,char*argv[]) { myname=argv[0]; //... printname(); }
-
Hi,
danke für die Antwort. Ja, an sich wäre das sicher eine Lösung. Das Problem ist aber, das es sich wie gesagt um eine portierung handelt und der Code selbst eigentlich am besten so unverändert wie möglich bleiben sollte. Die Funktionen des Original Systems sollten dabei am besten 1:1 nachgebildet werden, so dass sich der selbe code auch unter Unix übersetzten lässt.
-
Vielleicht kommen ja ein paar Ideen, wenn man den "alten" Code der prgname() Funktion sieht
-
leider ist das nicht so einfach, da die funktion mehrfach verwendet wird. Einmal z.B. in einer anderen Funktion die eine inkarnation von sich selbst startet. An anderer Stelle wird es für die Ausgabe von Fehlermeldungen in folgendem Format benutzt: [prgname]: [text]