C 编程/MS Windows 参考/process.h
外观
< C 编程 | MS Windows 参考
process.h 是一个 C 头文件,其中包含在处理线程和进程时使用的函数声明和宏。大多数针对 DOS、Windows 3.1x、Win32、OS/2、Novell NetWare 或 DOS 扩展程序的 C 编译器都会在其 C 库中提供此头文件和库函数。头文件和函数都没有在 ANSI C|ANSI/ISO C 标准或 POSIX 中定义。
根据其版权声明,微软版本的该文件至少可以追溯到 1985 年。 [1] 早期对该文件的参考是在 1986 年 10 月 26 日的 net.micro.pc usenet 帖子中。 [2] 使用的编译器是 Microsoft C 编译器版本 3.0。 Lattice C 编译器版本 3.30(1988 年 8 月 24 日)没有这样的头文件,但提供了类似的函数。从 Borland 开始,他们在 Turbo C 编译器版本 2.01 中提供了它。C Ware-Personal C 编译器版本 1.2c(1989 年 6 月)只有 ANSI 头文件。
名称 | 描述 | 注释 |
---|---|---|
exec (操作系统)|execl、execle、execlp、execlpe |
通过将新的子进程放置在以前由父进程占用的内存中来执行新的子进程。参数单独传递。 | DOS、Win、OS/2、POSIX |
exec (操作系统)|execv、execve、execvp、execvpe |
通过将新的子进程放置在以前由父进程占用的内存中来加载和执行新的子进程。参数作为指针数组传递。 | DOS、Win、OS/2、POSIX |
spawn (计算)|spawnl、spawnle、spawnlp、spawnlpe |
加载和执行新的子进程。参数单独传递。 | DOS、Win、OS/2 |
spawn (计算)|spawnv、spawnve、spawnvp、spawnvpe |
加载和执行新的子进程。参数作为指针数组传递。 | DOS、Win、OS/2 |
beginthread|beginthread、beginthreadNT |
在当前进程中创建新的执行线程。 | Win、OS/2 |
endthread|endthread |
终止由 beginthread 创建的线程。 |
Win、OS/2 |
getpid|getpid |
返回进程标识符。 | DOS、Win、OS/2 |
cexit|cexit |
恢复由启动代码更改的中断向量。 | DOS、Win、OS/2 |
名称 | 描述 | 注释 | 操作系统 |
---|---|---|---|
_P_WAIT |
挂起父进程,直到子进程执行完毕。 | 同步生成。 | MS-DOS、Win32、OS/2 |
_P_NOWAIT、_P_NOWAITO |
继续与新进程并发执行调用进程。 | 异步生成。 | Win32、OS/2 |
_P_OVERLAY |
用子进程覆盖父进程,从而销毁父进程。 | 与 exec* 函数具有相同的效果。 |
MS-DOS、Win32、OS/2 |
_P_DETACH |
子进程在后台运行,无权访问控制台或键盘。 | 对新进程的 _cwait 调用将失败。异步生成。 |
Win32、OS/2 |
_WAIT_CHILD |
用作 cwait 操作。 |
在 Win32 上已过时。 | MS-DOS、OS/2 |
_WAIT_GRANDCHILD |
用作 cwait 操作。 |
在 Win32 上已过时。 | MS-DOS、OS/2 |
由于没有标准可以作为实现的基础,因此 process.h 中声明的函数有所不同,具体取决于您使用的编译器。以下是提供 process.h 的编译器列表。
- DJGPP[3] [4]
- OpenWatcom[5][6]
- Digital Mars[7][8]
- MinGW[9]
- Microsoft Visual C++[10]
- Borland Turbo C,2.0 及更高版本[11][12]
- Lcc32[13]
- QNX Neutrino QCC 6.x[14]
另一个可能不同的方面是 exec* 和 spawn* 参数的组合长度。
- Delorie DJGPP:没有这样的限制。 [15]
- Digital Mars:最大值为 128 字节;没有说明结束符 '\0' 的内容。
- Microsoft cl:新进程的参数列表不能超过 1024 字节。 [16]
- ↑ “Copyright 1985–1989, Microsoft Corporation”,在 QuickC 版本 2.00 的 process.h 文件中
- ↑ 我的软盘格式化了吗?,groups-beta.google.com
- ↑ Delorie.com
- ↑ DJGPP process.h,delorie.com
- ↑ Openwatcom.org
- ↑ OpenWatcom clib,openwatcom.org
- ↑ DigitalMars.com
- ↑ Digital Mars process.h,digitalmars.com
- ↑ MinGW.org
- ↑ MSDN.Microsoft.com
- ↑ Borland.com
- ↑ C 版本 2.01,dn.codegear.com
- ↑ CS.Virginia.edu
- ↑ QNX.com
- ↑ DJGPP spawn*,delorie.com
- ↑ Microsoft MSDN,msdn.microsoft.com