自己实现一套system调用的功能,以前有碰到过用系统函数system出现不起作用的情况大多都失败了,后来在不得已的第三方工具的调用上自己实现了system函数,但是建议能用接口的最好用接口函数,vfork会占用系统资源,在内存不是很充足的情况下偶尔也会失败。
int System_cmd(const char *cmd)
{
pid_t pid;
if(-1==(pid=vfork()))
{
return 1;
}
if(0==pid)
{
execl("/bin/sh","sh","-c",cmd,(char *)0);
return 0;
}
else
{
wait(&pid);
}
return 0;
}
int IPCAM_System(const char *cmd)
{
int ret = -1;
if (cmd == NULL)
{
return -1;
}
ret = System_cmd(cmd);
if (0 != ret)
{
printf("execute cmd [%s] failed! ret = %d\n", cmd, ret);
return -1;
}
return 0;
}