我试图在linux中实现一个系统调用,以便在经过秒数后重新启动系统(syscall参数)。
我是linux和操作系统新手,如果有任何帮助,我将不胜感激。
我遇到了问题,因为在/kernel/sys.c中它不允许我使用system()或sleep(),错误是它是一个隐式声明。。。。。当我试着做的时候。
SYSCALL_DEFINE1(myrestart, int, msg)
{
int timer = msg * 35;
sleep(timer);
system("shutdown -r now");
return 0;
}
最佳答案
这不起作用。如果定义了系统调用,则处于内核上下文中。在内核上下文中,不能调用属于c std库的库。只能调用作为内核一部分的函数。此外,shutdown是一个用户空间命令。如果您对如何实现reboot感兴趣,请查看kernel/reboot.c。
关于linux - 实现Linux系统调用以进行重新引导,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55668741/