Quoth wren ng thornton <w...@freegeek.org>,

> There was a discussion about this recently over on libraries@, IIRC. The 
> short answer is that, at present, there is no function to give you $0. 
> We'd like to add such a function, but it's not been done yet.
>
> Part of the problem is that, as Alexey says, the first element of argv 
> is just whatever is passed to exec, which is not guaranteed to be a 
> complete path, a canonical path, or any other specific thing we'd 
> desire. It's not at all straightforward to determine the actual location 
> of the executable, especially not in a platform-independent manner. 
> argv[0] can't be trusted, scanning through $PATH isn't guaranteed to 
> find it (and even if you find something of the right name, it's not 
> guaranteed to be the correct executable), etc etc.

This isn't your problem, though.

I mean, if the proposed function is to return the path to the executable
file, then indeed you have a big problem with argv[0].  argv[0] can be
anything - or nothing (it can be a null string.)

But if we've turned to the question of whether to return argv[0],
that's much simpler:  you don't need to consider why a programmer
might want it.  It's appalling to think that library developers
would withhold access to standard POSIX 1003.1 features while they
decide whether they approve of them.

        Donn

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to