首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现linux系统重启调用

问实现linux系统重启调用
EN

Stack Overflow用户
提问于 2019-04-14 02:38:54
回答 1查看 143关注 0票数 0

我正在尝试在linux中实现一个系统调用,以便在秒数过后重新启动系统(syscall参数)。我是linux和操作系统的新手,任何帮助都将不胜感激。

我遇到了麻烦,因为在/kernel/sys.c中,它不允许我使用system()或sleep(),错误是它是一个隐式声明.当我试着让。

代码语言:javascript
复制
SYSCALL_DEFINE1(myrestart, int, msg)
{
    int timer = msg * 35;
    sleep(timer);
    system("shutdown -r now");
    return 0;
}
EN

回答 1

Stack Overflow用户

发布于 2019-04-24 12:18:09

这是不可行的。如果您定义了一个系统调用,那么您就处于内核上下文中。在内核上下文中,您不能调用属于c std库的库。您只能调用作为内核一部分的函数。此外,shutdown是一个用户空间命令。如果您对reboot是如何实现的感兴趣,可以查看kernel/reboot.c。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55668741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档