我刚刚将系统调用添加到linux内核。它只需要一个int参数并返回一个int。 这是系统调用代码:
asmlinkage int sys_mycall(int num)
{ printk("This is mycall.");
if(num%2==0)
num = 100003;
else
num = 3;
return num;
}
这是应该运行系统调用进行测试的代码:
#include<stdio.h>
#include<unistd.h>
int main()
{
int num;
num = syscall(335,1);
printf("%d",num);
}
我的问题是,无论我的论点是什么(例如num = 1或num = 2),系统只会输出100003,永远不会输出3。