home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 April / PCWorld_2000-04_cd.bin / Software / Servis / Devc / _SETUP.4 / Group3 / process.h < prev    next >
C/C++ Source or Header  |  1999-11-07  |  5KB  |  173 lines

  1. /* 
  2.  * process.h
  3.  *
  4.  * Function calls for spawning child processes.
  5.  *
  6.  * This file is part of the Mingw32 package.
  7.  *
  8.  * Contributors:
  9.  *  Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
  10.  *
  11.  *  THIS SOFTWARE IS NOT COPYRIGHTED
  12.  *
  13.  *  This source code is offered for use in the public domain. You may
  14.  *  use, modify or distribute it freely.
  15.  *
  16.  *  This code is distributed in the hope that it will be useful but
  17.  *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
  18.  *  DISCLAMED. This includes but is not limited to warranties of
  19.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  20.  *
  21.  * $Revision: 1.2 $
  22.  * $Author: khan $
  23.  * $Date: 1998/09/03 16:31:17 $
  24.  *
  25.  */
  26.  
  27. #ifndef    __STRICT_ANSI__
  28.  
  29. #ifndef    _PROCESS_H_
  30. #define    _PROCESS_H_
  31.  
  32. /* All the headers include this file. */
  33. #include <_mingw.h>
  34.  
  35. /* Includes a definition of _pid_t and pid_t */
  36. #include <sys/types.h>
  37.  
  38. /*
  39.  * Constants for cwait actions.
  40.  * Obsolete for Win32.
  41.  */
  42. #define    _WAIT_CHILD        0
  43. #define    _WAIT_GRANDCHILD    1
  44.  
  45. #ifndef    _NO_OLDNAMES
  46. #define    WAIT_CHILD        _WAIT_CHILD
  47. #define    WAIT_GRANDCHILD        _WAIT_GRANDCHILD
  48. #endif    /* Not _NO_OLDNAMES */
  49.  
  50. /*
  51.  * Mode constants for spawn functions.
  52.  */
  53. #define    _P_WAIT        0
  54. #define    _P_NOWAIT    1
  55. #define    _P_OVERLAY    2
  56. #define    _OLD_P_OVERLAY    _P_OVERLAY
  57. #define    _P_NOWAITO    3
  58. #define    _P_DETACH    4
  59.  
  60. #ifndef    _NO_OLDNAMES
  61. #define    P_WAIT        _P_WAIT
  62. #define    P_NOWAIT    _P_NOWAIT
  63. #define    P_OVERLAY    _P_OVERLAY
  64. #define    OLD_P_OVERLAY    _OLD_P_OVERLAY
  65. #define    P_NOWAITO    _P_NOWAITO
  66. #define    P_DETACH    _P_DETACH
  67. #endif    /* Not _NO_OLDNAMES */
  68.  
  69.  
  70. #ifndef RC_INVOKED
  71.  
  72. #ifdef    __cplusplus
  73. extern "C" {
  74. #endif
  75.  
  76. void    _cexit();
  77. void    _c_exit();
  78.  
  79. int    _cwait (int* pnStatus, _pid_t pid, int nAction);
  80.  
  81. _pid_t    _getpid();
  82.  
  83. int    _execl        (const char* szPath, const char* szArgv0, ...);
  84. int    _execle        (const char* szPath, const char* szArgv0, ...);
  85. int    _execlp        (const char* szPath, const char* szArgv0, ...);
  86. int    _execlpe    (const char* szPath, const char* szArgv0, ...);
  87. int    _execv        (const char* szPath, char* const* szaArgv);
  88. int    _execve        (const char* szPath, char* const* szaArgv,
  89.              char* const* szaEnv);
  90. int    _execvp        (const char* szPath, char* const* szaArgv);
  91. int    _execvpe    (const char* szPath, char* const* szaArgv,
  92.              char* const* szaEnv);
  93.  
  94. int    _spawnl        (int nMode, const char* szPath, const char* szArgv0,
  95.              ...);
  96. int    _spawnle    (int nMode, const char* szPath, const char* szArgv0,
  97.              ...);
  98. int    _spawnlp    (int nMode, const char* szPath, const char* szArgv0,
  99.              ...);
  100. int    _spawnlpe    (int nMode, const char* szPath, const char* szArgv0,
  101.              ...);
  102. int    _spawnv        (int nMode, const char* szPath, char* const* szaArgv);
  103. int    _spawnve    (int nMode, const char* szPath, char* const* szaArgv,
  104.              char* const* szaEnv);
  105. int    _spawnvp    (int nMode, const char* szPath, char* const* szaArgv);
  106. int    _spawnvpe    (int nMode, const char* szPath, char* const* szaArgv,
  107.              char* const* szaEnv);
  108.  
  109. /*
  110.  * The functions _beginthreadex and _endthreadex are not provided by CRTDLL.
  111.  * They are provided by MSVCRT.
  112.  *
  113.  * NOTE: Apparently _endthread calls CloseHandle on the handle of the thread,
  114.  * making for race conditions if you are not careful. Basically you have to
  115.  * make sure that no-one is going to do *anything* with the thread handle
  116.  * after the thread calls _endthread or returns from the thread function.
  117.  *
  118.  * NOTE: No old names for these functions. Use the underscore.
  119.  */
  120. unsigned long
  121.     _beginthread    (void (*pfuncStart)(void *),
  122.              unsigned unStackSize, void* pArgList);
  123. void    _endthread    ();
  124.  
  125. #ifdef    __MSVCRT__
  126. unsigned long
  127.     _beginthreadex    (void *pSecurity, unsigned unStackSize,
  128.              unsigned (__stdcall *pfuncStart) (void *), 
  129.              void* pArgList,
  130.              unsigned unInitFlags, unsigned* pThreadAddr);
  131. void    _endthreadex    (unsigned unExitCode);
  132. #endif
  133.  
  134.  
  135. #ifndef    _NO_OLDNAMES
  136. /*
  137.  * Functions without the leading underscore, for portability. These functions
  138.  * live in liboldnames.a.
  139.  */
  140. int    cwait (int* pnStatus, pid_t pid, int nAction);
  141. pid_t    getpid ();
  142. int    execl (const char* szPath, const char* szArgv0, ...);
  143. int    execle (const char* szPath, const char* szArgv0, ...);
  144. int    execlp (const char* szPath, const char* szArgv0, ...);
  145. int    execlpe (const char* szPath, const char* szArgv0, ...);
  146. int    execv (const char* szPath, char* const* szaArgv);
  147. int    execve (const char* szPath, char* const* szaArgv, char* const* szaEnv);
  148. int    execvp (const char* szPath, char* const* szaArgv);
  149. int    execvpe (const char* szPath, char* const* szaArgv,
  150.              char* const* szaEnv);
  151. int    spawnl (int nMode, const char* szPath, const char* szArgv0, ...);
  152. int    spawnle (int nMode, const char* szPath, const char* szArgv0, ...);
  153. int    spawnlp (int nMode, const char* szPath, const char* szArgv0, ...);
  154. int    spawnlpe (int nMode, const char* szPath, const char* szArgv0, ...);
  155. int    spawnv (int nMode, const char* szPath, char* const* szaArgv);
  156. int    spawnve (int nMode, const char* szPath, char* const* szaArgv,
  157.              char* const* szaEnv);
  158. int    spawnvp (int nMode, const char* szPath, char* const* szaArgv);
  159. int    spawnvpe (int nMode, const char* szPath, char* const* szaArgv,
  160.               char* const* szaEnv);
  161. #endif    /* Not _NO_OLDNAMES */
  162.  
  163. #ifdef    __cplusplus
  164. }
  165. #endif
  166.  
  167. #endif    /* Not RC_INVOKED */
  168.  
  169. #endif    /* _PROCESS_H_ not defined */
  170.  
  171. #endif    /* Not __STRICT_ANSI__ */
  172.  
  173.