Process.h: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Line 34: Line 34:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Name || Description||Notes||OS
! Name||Description||Notes||OS
|-
|-
| _P_WAIT||Suspends parent process until the child process has finished executing.||synchronous spawn.||MS-DOS,Win32,OS/2
| <code>_P_WAIT</code>||Suspends parent process until the child process has finished executing.||synchronous spawn.||MS-DOS,Win32,OS/2
|-
|-
| _P_NOWAIT, _P_NOWAITO||Continues to execute calling process concurrently with new process.||asynchronous spawn.||Win32,OS/2
| <code>_P_NOWAIT, _P_NOWAITO</code>||Continues to execute calling process concurrently with new process.||asynchronous spawn.||Win32,OS/2
|-
|-
| _P_OVERLAY||Overlays parent process with child, which destroys the parent.||has the same effect as the exec* functions.||MS-DOS,Win32,OS/2
| <code>_P_OVERLAY</code>||Overlays parent process with child, which destroys the parent.||has the same effect as the <code>exec*</code> functions.||MS-DOS,Win32,OS/2
|-
|-
| _P_DETACH||The child is run in background without access to the console or keyboard.||Calls to _cwait upon the new process will fail. Asynchronous spawn.||Win32,OS/2
| <code>_P_DETACH</code>||The child is run in background without access to the console or keyboard.||Calls to <code>_cwait</code> upon the new process will fail. Asynchronous spawn.||Win32,OS/2
|-
|-
| _WAIT_CHILD||used as cwait action.||Obsolete on Win32.||MS-DOS,OS/2
| <code>_WAIT_CHILD</code>||used as <code>cwait</code> action.||Obsolete on Win32.||MS-DOS,OS/2
|-
|-
| _WAIT_GRANDCHILD||used as cwait action.||Obsolete on Win32.||MS-DOS,OS/2
| <code>_WAIT_GRANDCHILD</code>||used as <code>cwait</code> action.||Obsolete on Win32.||MS-DOS,OS/2
|}
|}



Revision as of 20:11, 10 March 2008

process.h is a C header file which contains function declarations and macros used in working with threads and processes. Neither the header file nor the functions are defined by either the ANSI/ISO C standard or by POSIX. Most C compilers that target DOS, Windows 3.1x, Win32, OS/2, Novell NetWare or DOS extenders supply this header and the library functions in their C library.


History

The first reference to the file was in a post on the net.micro.pc usenet and dates back to Oct-26-1986[1] . The compiler used by the user was Microsoft C compiler Version 3.0. The Lattice C compiler version 3.30 (Aug-24-1988) did not have such a header file, but offered similar functions. As of Borland, they provided it in their Turbo C compiler version 2.01. The C Ware-Personal C compiler version 1.2c (June 1989) had only the ANSI headers.

Member functions

Name Description Notes
execl, execle, execlp, execlpe load and execute a new child process by placing it in memory previously occupied by the parent process. Parameters are passed individually. DOS,Win,OS/2,POSIX
execv, execve, execvp, execvpe load and execute a new child process by placing it in memory previously occupied by the parent process. Parameters are passed as an array of pointers. DOS,Win,OS/2,POSIX
spawnl, spawnle, spawnlp, spawnlpe load and execute a new child process. Parameters are passed individually. DOS,Win,OS/2
spawnv, spawnve, spawnvp, spawnvpe load and execute a new child process. Parameters are passed as an array of pointers. DOS,Win,OS/2
beginthread, beginthreadNT creates a new thread of execution within the current process. Win,OS/2
endthread terminates a thread created by beginthread. Win,OS/2
getpid returns the process identifier. DOS,Win,OS/2
cexit restore interrupt vectors altered by the startup code. DOS,Win,OS/2

Member constants

Name Description Notes OS
_P_WAIT Suspends parent process until the child process has finished executing. synchronous spawn. MS-DOS,Win32,OS/2
_P_NOWAIT, _P_NOWAITO Continues to execute calling process concurrently with new process. asynchronous spawn. Win32,OS/2
_P_OVERLAY Overlays parent process with child, which destroys the parent. has the same effect as the exec* functions. MS-DOS,Win32,OS/2
_P_DETACH The child is run in background without access to the console or keyboard. Calls to _cwait upon the new process will fail. Asynchronous spawn. Win32,OS/2
_WAIT_CHILD used as cwait action. Obsolete on Win32. MS-DOS,OS/2
_WAIT_GRANDCHILD used as cwait action. Obsolete on Win32. MS-DOS,OS/2

Implementations

Given the fact that there is no standard on which to base the implementation, the functions declared by process.h differs, depending on which compiler you use. Below is a list of compilers which provide process.h.

DJGPP [2]
OpenWatcom [3]
Digital Mars [4]
Mingw
Microsoft Visual C++
Borland Turbo C, 2.0 and later[5]
Lcc32

Differences

Another aspect that might vary is the combined length of exec* and spawn* parameters.

Delorie DJGPP : does not have such a limit.[6]
Digital Mars : the maximum is 128 bytes; nothing is stated about the ending '\0' character.
Microsoft cl : the argument list for the new process must not exceed 1024 bytes.[7]

References

External links