1 /* ----------------------------------------------------------------------------
2 (c) The University of Glasgow 2004
4 Interface for code in runProcess.c (providing support for System.Process)
5 ------------------------------------------------------------------------- */
7 #if !(defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32))
8 typedef pid_t ProcHandle;
10 // Should really be intptr_t, but we don't have that type on the Haskell side
11 typedef long ProcHandle;
14 #if !(defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32))
16 extern ProcHandle runProcess( char *const args[],
17 char *workingDirectory, char **environment,
18 int fdStdInput, int fdStdOutput, int fdStdError,
19 int set_inthandler, long inthandler,
20 int set_quithandler, long quithandler);
22 extern ProcHandle runInteractiveProcess( char *const args[],
23 char *workingDirectory,
31 extern ProcHandle runProcess( char *cmd,
32 char *workingDirectory, void *environment,
33 int fdStdInput, int fdStdOutput, int fdStdError);
35 extern ProcHandle runInteractiveProcess( char *cmd,
36 char *workingDirectory,
44 extern int terminateProcess( ProcHandle handle );
45 extern int getProcessExitCode( ProcHandle handle, int *pExitCode );
46 extern int waitForProcess( ProcHandle handle );