我正在尝试让我的模块显示一个printk
. 我是新手,所以我可能会遇到一些编程错误。这是我的模块 C 文件:
#include <linux/linkage.h>
#include <linux/time.h>
#include <linux/module.h>
asmlinkage long sys_mycall(int myid, char* firstname)
{
printk ("Hello, %s! \n sys_mycall called from process %d with ID %d. \n",
firstname, current->id, myid);
return 0;
}
static int my_init(void)
{
return 0;
}
static int my_exit(void)
{
printk("Goodbye!");
return 0;
}
module_init(sys_mycall);
module_exit(my_exit);
第一件事是我不知道箭头指针是如何工作的,所以我通常将它从中省略,printk
这样它就可以完美地编译。如果有人可以给我一个链接或有关如何理解它的东西,我将不胜感激。
当我使用insmod
在终端中插入它然后使用显示消息时,dmesg
我通过module_init
调用获取消息sys_mycall
但我无法向它添加任何参数并且它显示消息但它不显示任何内容 forfirstname
或 for myid
。