我已经为ARM体系结构实现了自定义系统调用sys_mycall
。在电话上建立并下载后,日志显示sys_mycall
正在运行。如何在Linux中调用C中的自定义系统调用
我的疑问是:
- 我如何调用从C文件这个系统调用。
- 可以以某种方式从java调用此系统调用(使用JNI或其他)。只需要提示一下如何在Android上实现这一点。
我已经为ARM体系结构实现了自定义系统调用sys_mycall
。在电话上建立并下载后,日志显示sys_mycall
正在运行。如何在Linux中调用C中的自定义系统调用
我的疑问是:
1)看看man 2 syscall
对于int syscall(int number, ...)
,你应该可以调用你的系统调用并传递你需要的参数。
2)是的,使用JNI。创建一个JNI函数来调用你的C代码,并从那里进行系统调用。
这可以使用Android NDK
here做的是从Android应用程序调用C代码的例子。
你确定你需要你自己的系统调用吗?通常这是一个坏主意!你不能只是做一个设备驱动程序..? –
其实我想了解整个应用程序流程是如何工作的。从底层(Linux内核)到顶层(应用层)。 – Aakashdeep
阅读http://tldp.org/HOWTO/Assembly-HOWTO/它是x86特有的,但你可以并且应该将它转换为ARM –