system_wsystem

执行命令。

重要

此 API 不能用于在 Windows 运行时中执行的应用程序。 有关详细信息,请参阅通用 Windows 平台应用中不支持的 CRT 函数

语法

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

参数

command
要执行的命令。

返回值

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

说明
E2BIG 自变量列表(与系统相关)太大。
ENOENT 无法找到命令解释器。
ENOEXEC 由于格式无效,无法执行命令解释器文件。
ENOMEM 没有足够的内存可用于执行命令;或可用内存已损坏;或存在无效块,这表明调用进程未正确分配。

有关返回代码的详细信息,请参阅 errno_doserrno_sys_errlist_sys_nerr

备注

system 函数将 command 传递给命令解释器,该解释器将字符串作为操作系统命令运行。 system 使用 COMSPECPATH 环境变量来定位命令解释器文件 CMD.exe。 如果 commandNULL,则该函数只检查命令解释器是否存在。

在调用 system 函数之前,你必须使用 fflush_flushall 进行显式刷新或关闭任何流。

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

默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态

一般文本例程映射

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" );
}

输入:crt_system.txt

Line one.
Line two.

输出

Line one.
Line two.

另请参阅

进程和环境控制
_exec_wexec 函数
exit_Exit_exit
_flushall
_spawn_wspawn 函数