使用vfork,在子进程调用execlp执行 ulimit -n 40000,但是报错
pid_t pid;
if ((pid = vfork()) < 0)
{
printf("\nvfork error\n");
return ;
}
else if (pid == 0)
{
if ( execlp("ulimit", "ulimit","-n","40000", (char*)0) < 0)
{
perror("\nexeclp error\n");
return ;
}
}
execlp error
: No such file or directory
由于后面的程序需要临时修改最大文件句柄,直接用system调用又没有实现效果,用vfork又报错
ulimit
不是一个可执行文件,它只是shell
的一个指令,它只对当前shell
及其后代有效。你要么把后面的程序封装到一个shell脚本里,在脚本里调用ulimit指令。要么调用系统API setrlimit()
来修改。
sudo
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!