Date: Tue, 21 Sep 1999 19:00:35 -0700 (PDT) From: Alfred Perlstein <bright@wintelcom.net> To: Laurence Berland <stuyman@confusion.net> Cc: Ben Smithurst <ben@scientia.demon.co.uk>, "Oleg V. Volkov" <rover@lglobus.ru>, freebsd-questions@FreeBSD.ORG Subject: Re: How to find absolute name of running binary? Message-ID: <Pine.BSF.4.05.9909211855111.6368-100000@fw.wintelcom.net> In-Reply-To: <37E83100.F6CBC126@confusion.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 21 Sep 1999, Laurence Berland wrote: > So how do programs like gzip/gunzip do it? Where running gunzip is the > same as gzip -d? because no one is going out of thier way to decieve the program of the argv[0]. It wouldn't be standard practive to do so, but it can be done: #include <stdio.h> int main (void) { char *spam[] = { "spam", NULL }; execve("./t/tt", spam, NULL); } the program ./t/tt will see argv[0] as "spam" instead of "./t/tt" most exec wrappers don't do this, so it would have to be intentional. -Alfred > > Ben Smithurst wrote: > > > > Alfred Perlstein wrote: > > > > > On Tue, 21 Sep 1999, Oleg V. Volkov wrote: > > > > > >> Well subject says it all. How could i find absolute name of my running > > >> binary from inside it? References to man or C examples welcome. > > > > > > I think some permutation of getcwd(3) and argv[0] should help, perhaps > > > with lstat (to check if you were run via a symlink) > > > > That won't do much if people give the program crap in argv[0], e.g. > > execlp("foo", "ha ha, fooled you!", "-x", "-y", "z", NULL), will > > it? There's some about this in some FAQ somewhere (comp.unix.programmer > > FAQ maybe, I'm not sure), and it basically boils down to "don't > > do it". I'd like to know what Oleg is doing and why he needs this > > information. > > > > -- > > Ben Smithurst | PGP: 0x99392F7D > > ben@scientia.demon.co.uk | key available from keyservers and > > | ben+pgp@scientia.demon.co.uk > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > > with "unsubscribe freebsd-questions" in the body of the message > > -- > Laurence Berland, Stuyvesant HS Debate > <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> > Windows 98: n. > useless extension to a minor patch release for > 32-bit extensions and a graphical shell for a > 16-bit patch to an 8-bit operating system > originally coded for a 4-bit microprocessor, > written by a 2-bit company that can't stand for > 1 bit of competition. > http://stuy.debate.net > icq #7434346 aol imer E1101 > The above email Copyright (C) 1999 Laurence Berland > All rights reserved > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-questions" in the body of the message > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9909211855111.6368-100000>