我做了一个没有参数的基本helloWorld系统调用示例,只是:
int main()
{
syscall(__NR_helloWorld);
return 0;
}
但现在我想弄清楚如何将实际参数传递给系统调用(即 long
) . 我试过的格式是什么:
int main()
{
long input = 1;
long result = syscall(__NR_someSysCall, long input, long);
return 0;
}
它需要 long
并返回 long
,但它没有正确编译;什么是正确的语法?
2 回答
删除类型名称 . 这只是一个函数调用 . 例:
syscall
的原型是这表示它需要一个可变数量(和类型)的参数 . 这取决于特定的系统调用 .
syscall
不是特定系统调用的常规接口 . 那些可以被明确编码,例如write(fd, buf, len)
.