将参数传递给系统调用
我做了一个基本的 helloWorld 系统调用示例,没有参数,只是:
int main()
{
syscall(__NR_helloWorld);
return 0;
}
但现在我试图弄清楚如何将实际参数传递给系统调用(即 long
)。确切的格式是什么,我尝试过:
int main()
{
long input = 1;
long result = syscall(__NR_someSysCall, long input, long);
return 0;
}
Where it take a long
and returns a long
,但它没有正确编译;正确的语法是什么?
I did a basic helloWorld system call example that had no parameters and was just:
int main()
{
syscall(__NR_helloWorld);
return 0;
}
But now I am trying to figure out how to pass actual arguments to the system call (ie. a long
). What is the format exactly, I tried:
int main()
{
long input = 1;
long result = syscall(__NR_someSysCall, long input, long);
return 0;
}
Where it takes a long
and returns a long
, but it is not compiling correctly; what is the correct syntax?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
删除类型名称。这只是一个函数调用。例子:
Remove the type names. It's just a function call. Example:
syscall
的原型是这表示它需要可变数量(和类型)的参数。这取决于特定的系统调用。
syscall
不是特定系统调用的正常接口。这些可以显式编码,例如write(fd, buf, len)
。The prototype for
syscall
isThis says that it takes a variable number (and type) of parameters. That depends on the particular system call.
syscall
is not the normal interface to a particular system call. Those can be explicitly coded, for examplewrite(fd, buf, len)
.