Process.h

Last updated

process.h is the C header file which contains function declarations and macros used in working with threads and processes. 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. Neither the header file nor most of the functions are defined by either the ANSI/ISO C standard or by POSIX.

Contents

History

Microsoft's version of the file dates back to at least 1985, according to its copyright statement. [1] An early reference to the file was in a post on the net.micro.pc usenet on Oct-26-1986. [2] The compiler used 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. Borland provided the header in their Turbo C compiler version 2.01. The C Ware-Personal C compiler version 1.2c (June 1989) had only the ANSI headers.

Functions

NameDescriptionNotes
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, beginthreadNTcreates 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

Constants

NameDescriptionNotesOS
_P_WAITSuspends parent process until the child process has finished executing.synchronous spawn.MS-DOS, Win32, OS/2
_P_NOWAIT, _P_NOWAITOContinues to execute calling process concurrently with new process.asynchronous spawn.Win32, OS/2
_P_OVERLAYOverlays parent process with child, which destroys the parent.has the same effect as the exec* functions.MS-DOS, Win32, OS/2
_P_DETACHThe 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_CHILDused as cwait action.Obsolete on Win32.MS-DOS, OS/2
_WAIT_GRANDCHILDused as cwait action.Obsolete on Win32.MS-DOS, OS/2

Implementations

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

Differences

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

References

  1. "Copyright 1985–1989, Microsoft Corporation", in QuickC version 2.00 process.h file
  2. Is my floppy diskette formated? [ permanent dead link ], groups-beta.google.com
  3. Delorie.com
  4. DJGPP process.h, delorie.com
  5. Openwatcom.org Archived 2015-03-17 at the Wayback Machine
  6. OpenWatcom clib Archived 2006-10-11 at the Wayback Machine , openwatcom.org
  7. DigitalMars.com
  8. Digital Mars process.h, digitalmars.com
  9. MinGW.org
  10. "MSDN.Microsoft.com". Archived from the original on 2007-07-07. Retrieved 2007-01-15.
  11. "Borland.com". Archived from the original on 2012-11-05. Retrieved 2007-01-15.
  12. C version 2.01, dn.codegear.com
  13. CS.Virginia.edu
  14. QNX.com
  15. DJGPP spawn*, delorie.com
  16. Microsoft MSDN, msdn.microsoft.com