gpt4 book ai didi

c - 我怎样才能找到我的系统调用被添加到内核?

转载 作者:太空狗 更新时间:2023-10-29 12:12:55 24 4
gpt4 key购买 nike

我在 Linux 内核 3.16 中添加了一个 hello world 系统调用,然后我编译并运行了它。我通过 syscall 函数调用了我的系统调用,但它没有打印任何内容并且 syscall 函数的输出不是 -1。

这是我的系统调用代码:

#include <linux/kernel.h>

asmlinkage long sys_hello(void){
printk("hello world\n");
return 0;
}

这是调用系统调用的 C 程序代码:

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#include <string.h>
#include <errno.h>

int main(void){
printf("function\n");
if(syscall(317)==-1){
printf("no\n");
}
else{
printf("yes\n");
}
return 0;
}

c程序的输出是:

function
yes

如何找到我的系统调用是否正确添加到内核?

最佳答案

printk 不一定会打印到您当前的 tty;要查看您的消息,请在您的 shell 中使用 dmesg 命令。另见 this one如果它没有出现在 dmesg

关于c - 我怎样才能找到我的系统调用被添加到内核?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35802114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com