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

  • Next message: John Michael Clemens: "2.3.46 compile problem + fix.."

    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 : Thu Feb 17 2000 - 01:52:36 EST