自己实现一套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;
}

博主曾遇到系统函数system调用不起作用的情况,后不得已在第三方工具调用上自己实现了system函数。同时建议能用接口就用接口函数,还指出vfork会占用系统资源,内存不足时偶尔会失败。
184

被折叠的 条评论
为什么被折叠?



