system、_wsystem

执行命令。

重要

此 API 不能用于在 Windows 运行时 中执行的应用程序。有关更多信息,请参见不支持 /ZW 的 CRT 函数

int system(
   const char *command 
);
int _wsystem(
   const wchar_t *command 
);

参数

  • command
    要执行的命令。

返回值

如果 command 为 NULL,并且找到命令解释器,则返回一个非零值。 如果未找到命令解释器,则返回 0 并将 errno 设置为 ENOENT。 如果 command 不为 NULL,则 system 返回由命令解释器返回的值。 如果命令解释器返回值 0,则返回值 0。 返回值 - 1 表示一个错误,并将 errno 设置为以下值之一:

  • E2BIG
    该参数列表 (取决于系统的) 太大。

  • ENOENT
    无法找到命令解释器。

  • ENOEXEC
    因为文件格式无效,无法执行解释器命令文件。

  • ENOMEM
    没有足够的内存可用于执行命令程;或可用内存被损坏;或存在无效的块,指示进程未正确分配调用。

有关这些返回代码的详细信息,请参阅 _doserrno、errno、_sys_errlist 和 _sys_nerr

备注

system 函数传递 command 给命令解释器,作为一个操作系统命令执行字符串。 system 使用 COMSPEC 和 PATH 环境变量定位命令解释器文件 CMD.exe。 如果 command 为 NULL,则该功能只检查命令解释器是否存在。

你必须明确清除—通过使用 fflush 或 _flushall—或在调用 system 函数前关闭所有的流。

_wsystem 是 system 的宽字符版本;_wsystem 的 command 参数是宽字符字符串。 否则这些函数具有相同行为。

一般文本例程映射

TCHAR.H 例程

_UNICODE & _MBCS 未定义

已定义 _MBCS

已定义 _UNICODE

_tsystem

system

system

_wsystem

要求

例程

必需的标头

system

<process.h> 或 <stdlib.h>

_wsystem

<process.h> 或 <stdlib.h> 或 <wchar.h>

有关其他兼容性信息,请参见兼容性

示例

此示例使用 system 输入一个文本文件。

// crt_system.c

#include <process.h>

int main( void )
{
   system( "type crt_system.txt" );
}

Input: crt_system.txt

Line one.
Line two.

Output

Line one.
Line two.

.NET Framework 等效项

请参见

参考

进程和环境控制

_exec、_wexec 函数

exit、_exit

_flushall

_spawn、_wspawn 函数