%>
执行命令。
重要
此 API 不能用于在 Windows 运行时中执行的应用程序。 有关详细信息,请参阅通用 Windows 平台应用中不支持的 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 |
没有足够的内存可用于执行命令;或可用内存已损坏;或存在无效块,这表明调用进程未正确分配。 |
有关返回代码的详细信息,请参阅 errno
、_doserrno
、_sys_errlist
和 _sys_nerr
。
备注
system
函数将 command
传递给命令解释器,该解释器将字符串作为操作系统命令运行。 system
使用 COMSPEC
和 PATH
环境变量来定位命令解释器文件 CMD.exe。 如果 command
为 NULL
,则该函数只检查命令解释器是否存在。
在调用 system
函数之前,你必须使用 fflush
或 _flushall
进行显式刷新或关闭任何流。
_wsystem
是 system
的宽字符版本; 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.