3
我有这样的代码:C++限制CPU时间来处理
pid_t vPid=fork();
int vStat;
switch(vPid){
case -1: perror("fork");
exit(1);
case 0:
//proces fiu
if(chdir("/var/code/p1")==0){
system("make clean");
system("make");
//limit on data
struct rlimit vLimD;
vLimD.rlim_cur = 10000000;//10Mb
vLimD.rlim_max = 10000000; //10Mb
setrlimit(RLIMIT_DATA, &vLimD);
//limit on cpu time
struct rlimit vLimCPU;
vLimCPU.rlim_cur = 10;//10 sec
vLimCPU.rlim_max = 10;//10 sec
cout<<"limits return "<<setrlimit(RLIMIT_CPU, &vLimCPU);
execl("/var/code/p1/p1","",NULL);
}
else {exit(1);}
break;
default:
while(wait(&vStat)!=vPid);
break;
}
过程的/ var /代码/ P1/P1运行40秒,我想限制这个过程中只是10秒运行vLimitCPU(setrlimit)
和10秒后做一些事情,但不打印没有像“限返回值”(第一setrlimit
返回0)