进程和环境控制

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

进程和环境控制函数

例程

使用

.NET Framework 等效项

abort

终止进程没有刷新缓冲区或调用被 atexit 和 _onexit注册的函数

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见平台调用示例

assert

逻辑错误的测试

System::Diagnostics::Debug::Assert

_ASSERT, _ASSERTE

与 assert类似,但是只在运行库的调试版本中可用

System::Diagnostics::Debug::Assert

atexit

在程序结束执行的计划程序。

System::Diagnostics::Process::Exited

_beginthread、_beginthreadex

在 Windows 操作系统进程上创建新线程

System::Threading::Thread::Start

退出 。

执行 exit 终止程序 (例如刷新缓冲区),然后返回控件去调用程序,没有终止进程。

System::Diagnostics::Process 类

- 退出...

执行 _exit 终止程序,然后在没有结束进程的情况下返回控件去给调用程序。

System::Diagnostics::Process 类

_cwait

等待直到另一个进程停止。

System::Diagnostics::Process::WaitForExit

_endthread、_endthreadex

终止Windows 操作系统线程

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见平台调用示例

_execl、_wexecl

利用自变量列表执行新的进程

System::Diagnostics::Process 类System::Diagnostics::ProcessStartInfo 类

_execle、_wexecle

以自变量列表和给定环境执行新的进程

System::Diagnostics::Process 类System::Diagnostics::ProcessStartInfo 类

_execlp、_wexeclp

使用 PATH 变量和参数列表,执行新的进程

System::Diagnostics::Process 类System::Diagnostics::ProcessStartInfo 类

_execlpe、_wexeclpe

使用 PATH 变量,给定的环境和参数列表执行新的进程

System::Diagnostics::Process 类System::Diagnostics::ProcessStartInfo 类

_execv、_wexecv

利用自变量数组执行新的进程

System::Diagnostics::Process 类System::Diagnostics::ProcessStartInfo 类

_execve、_wexecve

以自变量数组和给定环境执行新的进程

System::Diagnostics::Process 类System::Diagnostics::ProcessStartInfo 类

_execvp、_wexecvp

使用 PATH 变量和参数数组,执行新的进程

System::Diagnostics::Process 类System::Diagnostics::ProcessStartInfo 类

_execvpe、_wexecvpe

使用 PATH 变量,给定的环境和参数数组执行新的进程

System::Diagnostics::Process 类System::Diagnostics::ProcessStartInfo 类

exit

调用由 atexit 和 _onexit 注册的函数,刷新所有缓冲区,请关闭所有开启文件,并且终止进程

System::Diagnostics::Process::Kill

退出

立即终止进程,不调用 atexit 或 _onexit 或刷新缓冲区

System::Diagnostics::Process::Kill

getenv, _wgetenv, getenv_s、_wgetenv_s

获取环境变量的值

System::Environment::GetEnvironmentVariable

_getpid

获得进程 ID 号

System::Diagnostics::Process::Id

longjmp

还原堆栈保存环境;使用它来执行非本地 goto

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见平台调用示例

_onexit

在程序终止时执行的计划程序;使用和 Microsoft C/C++ 兼容的版本7.0 和更早的版本

System::Diagnostics::Process::Exited

_pclose

等待新的命令处理器并关闭在相关管道的流

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见平台调用示例

perror、_wperror

打印错误消息。

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见平台调用示例

_pipe

创建一个读写操作的管道。

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见平台调用示例

_popen、_wpopen

创建管道并执行命令

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见平台调用示例

_putenv, _wputenv, _putenv_s、_wputenv_s

添加或更改环境变量的值

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见平台调用示例

raise

发送信号调用进程

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见平台调用示例

setjmp

保存堆栈环境;使用执行非本地 goto

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见平台调用示例

signal

处理中断信号

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见平台调用示例

_spawnl、_wspawnl

用指定的参数列表创建并执行新的进程

System::Diagnostics::Process 类System::Diagnostics::ProcessStartInfo 类

_spawnle、_wspawnle

用指定的参数列表和环境创建并执行新的进程

System::Diagnostics::Process 类System::Diagnostics::ProcessStartInfo 类

_spawnlp、_wspawnlp

使用 PATH 变量和指定的参数列表,创建并执行新的进程

System::Diagnostics::Process 类System::Diagnostics::ProcessStartInfo 类

_spawnlpe、_wspawnlpe

使用 PATH 变量,指定的环境和参数列表,创建并执行新的进程

System::Diagnostics::Process 类System::Diagnostics::ProcessStartInfo 类

_spawnv、_wspawnv

用指定的参数数组创建并执行新的进程

System::Diagnostics::Process 类System::Diagnostics::ProcessStartInfo 类

_spawnve、_wspawnve

用指定的参数数组和环境创建并执行新的进程

System::Diagnostics::Process 类System::Diagnostics::ProcessStartInfo 类

_spawnvp、_wspawnvp

使用 PATH 变量和指定的参数数组,创建并执行新的进程

System::Diagnostics::Process 类System::Diagnostics::ProcessStartInfo 类

_spawnvpe、_wspawnvpe

使用 PATH 变量,指定的环境和参数数组,创建并执行新的进程

System::Diagnostics::Process 类System::Diagnostics::ProcessStartInfo 类

system、_wsystem

执行操作系统命令

System::Diagnostics::Process 类System::Diagnostics::ProcessStartInfo 类

在 Windows 操作系统中,已经产生的进程与正在产生的进程等效。 所有进程可以使用_cwait 等待已知进程ID的任何其他进程。

_exec 和与_spawn 系列之间的差别在于 _spawn 函数可以从新的进程返回控件去调用进程。 在 _spawn 函数中,除非 _P_OVERLAY 指定,则调用进程和新的进程都存在内存中。 在 _exec 函数中,新的进程覆盖调用的进程,因此,控件不能返回到调用进程,除非错误发在尝试启动执行新的进程。

区别在 _exec 系列中的函数,以及那些在 _spawn 系列中,涉及定位文件的方法作为新的进程被执行,窗体中的参数传递给新的进程,设置环境的方法如下表所示。 使用传递参数列表的函数,当参数的数目是常量或在编译时已知时。 使用传递指向包含参数数组的一个函数,当参数的数目在运行是被确定。 下表中的信息也适用于 _spawn 和 _exec 函数的宽字符副本。

_spawn 和_exec 函数族

函数

使用路径变量查找文件

参数传递约定

环境设置

_execl, _spawnl

List

从调用进程中继承

_execle, _spawnle

List

新进程指向环境表格的指针作为最后的参数传递

_execlp, _spawnlp

List

从调用进程中继承

_execlpe, _spawnlpe

List

新进程指向环境表格的指针作为最后的参数传递

_execv, _spawnv

数组

从调用进程中继承

_execve, _spawnve

数组

新进程指向环境表格的指针作为最后的参数传递

_execvp, _spawnvp

数组

从调用进程中继承

_execvpe, _spawnvpe

数组

新进程指向环境表格的指针作为最后的参数传递

请参见

参考

按类别分的运行时例程