进程和环境控制

使用进程控制例程启动、停止和管理程序内的进程。 使用环境控制例程获取和更改与操作系统环境有关的信息。

进程和环境控制函数

例程 使用
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 继承自调用进程

另请参阅

按类别分的通用 C 运行时例程