Re: #! and argv[0]: the path is removed before invoking the interpreter

From: Khimenko Victor (khim@sch57.msk.ru)
Date: Wed Feb 16 2000 - 19:54:48 EST


In <AA5Qpguad0@khim.sch57.msk.ru> alan@lxorguk.ukuu.org.uk (alan@lxorguk.ukuu.org.uk) wrote:
> In <E12LBjK-0000Xp-00@the-village.bc.nu> Alan Cox (alan@lxorguk.ukuu.org.uk) wrote:
>>> I believe the behavior of #! on Solaris goes all the way back to BSD
>>> in of the early 80's. FreeBSD 3.0 behaves as Solaris does.
>>>
>>> I hope this considered a bug. If there willingness to take a patch for
>>> it, I might work on making the fix.

>> Im not sure about bug, but its certainly worth behaving the same way as
>> everyone else in this case if its appropriate to do so. Take a look at
>> the fs/binfmt* code and sure - send a patch

> IMO it's better be CONSISTENT. Either
> 1) argv[0] is always the same thing that was passed to execv
> or
> 2) argv[0] is always "realpath" to executable.

> Since in case of "real binary" we doing 1) IMNSHO we should do this in case
> of script as well...

Oops. Sorry, of course here natural thing is to use exactly what was fater
#! : execve() is such case sits deep in kernel and natural argument is of
course full speciafied name :-/

P.S. But limtation for just ONE additional argument looks ugly :-( Even if
it's like Unix always worked :-((

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Feb 23 2000 - 21:00:17 EST