
Mark Carroll wrote:
Your code looks great, but where do you find the library documentation, like what the arguments for executeFile are all about? (I'd guessed the Maybe thing was an environment, but what's the Bool?) I've been trying to do similar stuff, but have been stumbling in the dark rather.
Source code (hslibs/posix/PosixProcPrim.lhs):
executeFile :: FilePath -- Command
-> Bool -- Search PATH?
-> [String] -- Arguments
-> Maybe [(String, String)] -- Environment
-> IO ()
executeFile path search args Nothing = do
[snip]
if search
then throwErrnoIfMinus1_ "executeFile" (c_execvp s arr)
else throwErrnoIfMinus1_ "executeFile" (c_execv s arr)
executeFile path search args (Just env) = do
[snip]
if search
then throwErrnoIfMinus1_ "executeFile" (c_execvpe s arg_arr env_arr)
else throwErrnoIfMinus1_ "executeFile" (c_execve s arg_arr env_arr)
IOW:
search env function
False Nothing execv
True Nothing execvp
False Just _ execve
True Just _ execvpe [*]
[*] execvpe() isn't a standard library function; it is implemented in
hslibs/posix/cbits/execvpe.c using execve().
--
Glynn Clements