我正在学习如何创建自定义系统调用并实现将 ptr char 指针作为参数的代码(save.c),然后将指向的字符串复制ptr
到sys_mybuf
. 实现将ptr
char 指针作为参数的代码(load.c),然后将字符串复制sys_mybuf
到ptr
. 所以,我期待以下代码。但这似乎不起作用。我希望所有内核系统调用代码都使用 char 数组。我应该怎么办?
保存.c
1 #include <linux/kernel.h>
2 #define STRING__SIZE 501
3 char sys_mybuf[STRING__SIZE]; // a string of at most size 500.
4 asmlinkage int sys_save(char* ptr)
5 {
6 int index = 0;
17
18 ptr[index] = '\0';
19 return index; // the number of bytes actually read.
20 }
加载.c
1 #include <linux/kernel.h>
2 // extern
3 asmlinkage int sys_load(char* ptr)
17 ptr[index] = '\0';
18 return index;
19 }
~