如何在Linux中从C调用自定义系统调用

时间:2012-12-06 06:28:48

标签: android linux java-native-interface system

我为ARM架构实现了自定义系统调用sys_mycall。在手机上构建和下载后,日志显示sys_mycall正在运行。

我怀疑是:

  1. 如何从C文件中调用此系统调用。
  2. 我可以以某种方式从java调用此系统调用(使用JNI或其他东西)。只需要提一下如何在Android上实现这一点。

2 个答案:

答案 0 :(得分:3)

1)用man 2 syscall查看int syscall(int number, ...),你应该可以调用你的sys调用并传递你需要/想要的参数。

2)是的,请使用JNI。创建一个JNI函数来调用你的C代码,然后从那里创建系统调用。

答案 1 :(得分:1)

这可以使用Android NDK

完成

here是从Android应用程序调用C代码的示例。