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

标签 android linux java-native-interface system

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

我的疑问是:

  1. 如何从 C 文件调用此系统调用。
  2. 我能以某种方式从 java 调用这个系统调用吗(使用 JNI 或其他东西)?只需要一些关于如何在 Android 上实现它的提示。

最佳答案

1) 查看 man 2 syscall for int syscall(int number, ...) 用它你应该能够调用你的系统调用并传递你的参数需要/想要。

2) 是的,为此使用 JNI。创建一个 JNI 函数来调用您的 C 代码,然后从那里进行系统调用。

关于android - 如何在 Linux 中从 C 调用自定义系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13738117/

相关文章:

linux - 获取匹配特定模式的前 n 行(使用 Linux 命令)

linux - 用于复制文件的 Bash 脚本

java - 在 Eclipse 插件中显示第三方 JNI 库的控制台输出

android - 需要从 Android "Overview Screen"隐藏程序内容

java - 如何在android中晃动时调用谷歌地图?

java - 在什么情况下,c 的 write() 函数写入的数据可能少于请求的数据?

java - 如何使用 JNI 在构建器 C++ 应用程序中启动 JVM

java - 如何使用 Java native 接口(interface)在 C++ 中导入 python 库 - Android Studio

java.lang.ClassNotFoundException : dalvik. 系统.BaseDexClassLoader.findClass

android - ConstraintLayout - 在根部居中 TextView 但不覆盖 Button