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>
