lkml.org 
[lkml]   [2000]   [Feb]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: #! and argv[0]: the path is removed before invoking the interpreter
Date
Kevin Layer writes the following:
>I have an interpreter of #! scripts that absolutely needs to know the
>full path of where the executable is, and I can't assume it will be in

Wrong.

What full path? There can be many. Or none. It could be deleted right after
it starts up.

There is no such thing as "the path to the current executable" in Unix.

(In Linux 2.2 and up, readlink(/proc/self/exe) is close)

>the user's path. Getting it in argv[0] is the cleanest way. That is,
>I can tell users they have to use the full path in the #!, if they
>want to use my interpreter.

You should eliminate whatever design flaw you have that causes you to want
this information.

>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.

I hope the old BSD/Sysv behavior is considered a bug. It unnecessarily
exposes the difference between an executable in ELF or aout format and an
executable in #! format. argv[0] passed to main() should be the same that was
passed to execve().

-
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/

\
 
 \ /
  Last update: 2005-03-22 13:56    [W:0.059 / U:0.924 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site