win32下利用C语言调用cmd进行windows命令

本文介绍了一个用于跨平台执行外部命令的C函数实现。该函数能够根据操作系统类型(Windows或Unix-like系统)调用相应的系统命令,并返回执行状态。文中提供了详细的源代码示例。

/* execute command -------------------------------------------------------------
* execute command line by operating system shell
* args : char *cmd I command line
* return : execution status (0:ok,0>:error)
*-----------------------------------------------------------------------------*/
extern int execcmd(const char *cmd)
{
#ifdef WIN32
PROCESS_INFORMATION info;
STARTUPINFO si={0};
DWORD stat;
char cmds[1024];

trace(3,"execcmd: cmd=%s\n",cmd);

si.cb=sizeof(si);
sprintf(cmds,"cmd /c %s",cmd);
if (!CreateProcess(NULL,(LPTSTR)cmds,NULL,NULL,FALSE,CREATE_NO_WINDOW,NULL,
NULL,&si,&info)) return -1;
WaitForSingleObject(info.hProcess,INFINITE);
if (!GetExitCodeProcess(info.hProcess,&stat)) stat=-1;
CloseHandle(info.hProcess);
CloseHandle(info.hThread);
return (int)stat;
#else
trace(3,"execcmd: cmd=%s\n",cmd);

return system(cmd);
#endif
}

转载于:https://www.cnblogs.com/jder/p/6195206.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值