Mailinglist Archive: opensuse-de (3878 mails)
| < Previous | Next > |
Re: OT: Programmverzeichnis
- From: eilert@xxxxxxxxxxxxxxxxxxxxxxxx (Eilert Brinkmann)
- Date: Fri Dec 22 17:23:38 2000
- Message-id: <xttae9o5q05.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Andreas Tirok wrote:
> argv[0] enthaelt den kompletten
> Programmnamen mit Pfad.
> Musste nur noch auseinandernehmen
> zB. strcpy(progname, strrchr(argv[0], '\'))
Der Ansatz mit argv[0] ist richtig, aber so wird die letzte
Pfadkomponente mitsamt dem davorstehenden Schrägstrich kopiert. Den
Pfad des Verzeichnisses, in dem das Programm liegt, bekommt man, indem
man argv[0] kopiert und den hinteren Teil abschneidet:
char* progname;
if (strchr (argv[0], '/') == NULL) {
/* Falls der Programmname ohne Pfad enthalten ist, aktuelles */
* Verzeichnis annehmen. Bin mir nicht sicher, ob das vorkommen kann. */
progname = strdup (".");
} else {
/* Sonst Pfad kopieren und letzte Komponente abschneiden. */
progname = strdup (argv[0]);
*(strrchr (progname, "/")) = '\0';
}
Zu beachten ist noch, daß das Ergebnis nicht ein absoluter Pfadname
sein muß, sondern auch ein relativer Pfadname sein kann.
Eilert
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Eilert Brinkmann -- Universitaet Bremen -- FB 3, Informatik
eilert@xxxxxxxxxxxxxxxxxxxxxxxx - eilert@xxxxxxx - eilert@xxxxxxxxxxxxxx
http://www.informatik.uni-bremen.de/~eilert/
---------------------------------------------------------------------
To unsubscribe, e-mail: suse-linux-unsubscribe@xxxxxxxx
For additional commands, e-mail: suse-linux-help@xxxxxxxx
| < Previous | Next > |