ddd*_*ddd 4 c kernel linux-kernel
我正在使用内核2.8.32的Ubuntu 9.04.我创建了一个简单的系统调用来计算克隆和execve调用的数量.当用户/ shell调用此系统调用时,我希望它将这两个值传递给用户.截至目前我正在使用:
#include <linux/sched.h>
#include <linux/asmlinkage>
/* These two variables are extern longs which are defined in sched.h and initialized in process_32.c */
total_execve;
total_clones;
long mycall* (int i){
int array[2];
array[0] = total_execve;
array[1] = total_clones;
return array;
}
Run Code Online (Sandbox Code Playgroud)
因为我得到一个未定义的引用,我无法编译它.
关于返回数组:我的新调用是否能够访问数组,数组不会位于内核内存中吗?
不要将指针返回到堆栈中.让调用者将指针传递给函数.此外,您的函数声明语法不正确.这是你想要做的:
void mycall (int *execve, int *clones)
{
*execve = total_execve;
*clones = total_clones;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1047 次 |
| 最近记录: |