一、system()--执行 shell 命令 1、包含头文件: #include 2、定义 int system(const char * string); 3、参数 String:合法的可执行 DOS(SHELL)命令 4、返回值 1)如果 system()在调用/bin/sh 时失败则返回 127, 其他失败原因返回-1
2)若参数 string 为空指针(NULL), 则返回非零值
3)如果 system()调用成功则最后会返回执行 shell 命令后的返回值, 但是此返回值也有可能为system()调用/bin/sh 失败所返回的127, 因此最好能再检查 errno 来确认执行成功
5、说明 system()会调用 fork()产生子进程, 由子进程来调用/bin/sh-c string 来执行参数 string 字符串所代表的命令, 此命令执行完后随即返回原调用的进程
在调用 system()期间 SIGCHLD 信号会被暂时搁置,SIGINT 和 SIGQUIT 信号则会被忽略
6、用例 system(“ipconfig/all”); 7、重定向标准输出流 FILE *stream; stream = freopen(“data
txt”,”wb”,stdout); 运行结果可以重定向到 data
txt 8、隐藏控制台窗口 #pragma comment( linker, “/subsystem:\”windows\” /entry:\”mainCRTStartup\”” ) 仍有调用的 DOS 窗口一闪,且重定向失效
二、WinExec()—运行可执行程序 1、包含头文件 #include 2、定义 UINT Win Exec(LPCSTR lpCmdLine, UINT uCmdShow); 3、参数 lpCmdLine:指向一个空结束的字