资源描述:
《c下执行命令行的方法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、一、system()--执行shell命令1、包含头文件:#include2、定义intsystem(constchar*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()会调用fo
2、rk()产生子进程,由子进程来调用/bin/sh-cstring来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程.在调用system()期间SIGCHLD信号会被暂时搁置,SIGINT和SIGQUIT信号则会被忽略。6、用例system(“ipconfig/all”);7、重定向标准输出流FILE*stream;stream=freopen(“data.txt”,”wb”,stdout);运行结果可以重定向到data.txt8、隐藏控制台窗口#pragmacomment(linker,“/subsystem:”windows”/entry:”mainCRT
3、Startup””)仍有调用的DOS窗口一闪,且重定向失效。二、WinExec()—运行可执行程序1、包含头文件#include2、定义UINTWinExec(LPCSTRlpCmdLine,UINTuCmdShow);3、参数lpCmdLine:指向一个空结束的字符串,串中包含将要执行的应用程序的命令行(文件名加上可选参数)。uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。//uCmdShow参数可选值:SW_HIDE=0;{隐藏,并且任务栏也没有最小化图
4、标}SW_SHOWNORMAL=1;{用最近的大小和位置显示,激活}SW_NORMAL=1;{同SW_SHOWNORMAL}SW_SHOWMINIMIZED=2;{最小化,激活}SW_SHOWMAXIMIZED=3;{最大化,激活}SW_MAXIMIZE=3;{同SW_SHOWMAXIMIZED}SW_SHOWNOACTIVATE=4;{用最近的大小和位置显示,不激活}SW_SHOW=5;{同SW_SHOWNORMAL}SW_MINIMIZE=6;{最小化,不激活}SW_SHOWMINNOACTIVE=7;{同SW_MINIMIZE}SW_SHOWNA=8;{同SW_SHOWNOACTIV
5、ATE}SW_RESTORE=9;{同SW_SHOWNORMAL}SW_SHOWDEFAULT=10;{同SW_SHOWNORMAL}SW_MAX=10;{同SW_SHOWNORMAL}4、返回值若函数调用成功,则返回值大于31。若函数调用失败,则返回值为下列之一:1)0:系统内存或资源已耗尽。2)ERROR_BAD_FORMAT:EXE文件无效(非Win32.EXE或.EXE影像错误)。3)ERROR_FILE_NOT_FOUND:指定的文件未找到。4)ERROR_PATH_NOT_FOUND:指定的路径未找到。5)大于31{调用成功}6)等于0{内存不足}7)ERROR_FILE_NO
6、T_FOUND=2;{文件名错误}8)ERROR_PATH_NOT_FOUND=3;{路径名错误}9)ERROR_BAD_FORMAT=11;{EXE文件无效}5、用例WinExec("notepad.exe",SW_SHOW);//运行计事本WinExec(“cmd/cipconfig”,SW_SHOW);//运行命令行6、重定向标准输出流不同窗口,无法重定向7、隐藏控制台窗口#pragmaSW_HIDE窗口都隐藏。三、ShellExecute()—运行文件1、包含头文件#include2、定义ShellExecute(hWnd:HWND;{指定父窗口句柄}Ope
7、ration:PChar;{指定动作,譬如:open、runas、print、edit、explore、find[2]}FileName:Pchar;{指定要打开的文件或程序}Parameters:Pchar;{给要打开的程序指定参数;如果打开的是文件这里应该是null}Directory:Pchar;{缺省目录}ShowCmd:Integer{打开选项}):HINST;3、参数见上//ShowCmd参数可选值:SW_H