进程和环境控制
使用进程控制例程启动、停止和管理程序内的进程。 使用环境控制例程获取和更改与操作系统环境有关的信息。
进程和环境控制函数
例程 | 使用 |
---|---|
abort |
中止进程而无需刷新缓冲区或调用通过 atexit 和 _onexit 注册的函数 |
assert |
测试逻辑错误 |
_ASSERT 、_ASSERTE 宏 |
类似于 assert ,但仅在运行时库的调试版本中可用 |
atexit |
在程序终止时执行的计划例程 |
%> | 在 Windows 操作系统进程中创建新的线程 |
_cexit |
执行 exit 终止过程(例如刷新缓冲区),然后在不终止进程的情况下将控制权返回到调用程序 |
_c_exit |
执行 _exit 终止过程,然后在不终止进程的情况下将控制权返回到调用程序 |
_cwait |
请等待,直到另一个进程终止 |
%> | 终止一个 Windows 操作系统线程 |
%> | 使用参数列表执行新进程 |
%> | 使用参数列表和给定的环境执行新进程 |
%> | 使用 PATH 变量和参数列表执行新进程 |
%> | 使用 PATH 变量、给定的环境和参数列表执行新进程 |
%> | 使用参数数组执行新进程 |
%> | 使用参数数组和给定的环境执行新进程 |
%> | 使用 PATH 变量和参数数组执行新进程 |
%> | 使用 PATH 变量、给定的环境和参数数组执行新进程 |
exit |
调用通过 atexit 和 _onexit 注册的函数,刷新所有缓冲区,关闭所有打开的文件,然后终止进程 |
_exit |
立即终止进程,无需调用 atexit 或 _onexit 或刷新缓冲区 |
获取环境变量的值 | |
_getpid |
获取进程 ID 号 |
longjmp |
还原保存的堆栈环境;使用它来执行非本地 goto |
_onexit |
在程序终止时执行的计划例程;用于与 Microsoft C/C++ 版本 7.0 和更早版本的兼容性 |
_pclose |
等待新命令处理器并关闭关联管道上的流 |
%> | 打印错误消息 |
_pipe |
创建用于读取和写入的管道 |
%> | 创建管道,然后执行命令 |
添加或更改环境变量的值 | |
raise |
将信号发送到调用进程 |
setjmp |
保存堆栈环境;用于执行非本地 goto |
signal |
处理中断信号 |
%> | 使用指定的参数列表创建和执行新进程 |
%> | 使用指定的参数列表和环境创建和执行新进程 |
%> | 使用 PATH 变量和指定的参数列表创建和执行新进程 |
%> | 使用 PATH 变量、指定的环境和参数列表创建和执行新进程 |
%> | 使用指定的参数数组创建和执行新进程 |
%> | 使用指定的环境和参数数组创建和执行新进程 |
%> | 使用 PATH 变量和指定的参数数组创建和执行新进程 |
%> | 使用 PATH 变量、指定的环境和参数数组创建和执行新进程 |
%> | 执行操作系统命令 |
在 Windows 操作系统中,生成的进程等同于正在生成的进程。 任何进程都可以使用 _cwait
等待其进程 ID 为已知的任何其他进程。
_exec
和 _spawn
系列间的差异是:_spawn
函数可以将新进程中的控制权返回到调用进程。 在 _spawn
函数中,除非已指定 _P_OVERLAY
,否则调用进程以及新进程都存在于内存中。 在 _exec
函数中,新进程将覆盖调用进程,因此除非在尝试启动新进程的执行中发生错误,否则控制权不能返回到调用进程。
_exec
和 _spawn
系列中的函数之间的差异涉及以下方面:查找要作为新进程执行的文件的方法、自变量传递到新进程的形式和设置环境的方法,如下表所示。 如果参数的数目为常数或在编译时已知,请使用传递参数列表的函数。 如果参数的数目需要在运行时确定,请使用将指针传递到包含参数的数组中的函数。 下表中的信息还适用于 _spawn
和 _exec
函数的宽字符对应项。
_spawn
和 _exec
函数系列
函数 | 使用 PATH 变量查找文件 |
参数传递约定 | 环境设置 |
---|---|---|---|
%> | 否 | 列出 | 继承自调用进程 |
%> | 否 | 列表 | 指向作为最后一个参数传递的新进程的环境表 |
%> | 是 | 列表 | 继承自调用进程 |
%> | 是 | Array | 指向作为最后一个参数传递的新进程的环境表 |
%> | 是 | 列出 | 指向作为最后一个参数传递的新进程的环境表 |
%> | 否 | Array | 继承自调用进程 |
%> | 否 | 数组 | 指向作为最后一个参数传递的新进程的环境表 |
%> | 是 | Array | 继承自调用进程 |