[Haskell-cafe] How to get a file path to the program invoked?

wren ng thornton wren at freegeek.org
Sun Dec 4 07:32:23 CET 2011


On 12/1/11 2:26 PM, dokondr wrote:
> How to find this path using GHC libraries?

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.

-- 
Live well,
~wren



More information about the Haskell-Cafe mailing list