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.