实现linux系统调用以重启
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现linux系统调用以重启相关的知识,希望对你有一定的参考价值。
我试图在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是用户空间命令。如果您对如何实现重新启动感兴趣,请查看kernel / reboot.c。
以上是关于实现linux系统调用以重启的主要内容,如果未能解决你的问题,请参考以下文章