文章目录
一、系统调用
二、Android NDK 中的系统调用示例
一、系统调用
----
在 " 用户层 " , 运行的都是用户应用程序 ;
用户层 下面 是 驱动层 , 驱动层 下面是 系统层 ,..., 不是由错误导致 ;
调用 read 方法 , 读取文件 , 触发了软中断 , 以 arm 为例 , 执行 SVC 指令 , 参数 0 , 在 R0 中可以设置另外的参数 , 该 R0 参数指定调用什么功能...;
整个应用进程的控制权此时就交给了 驱动层 / 系统层 , 在这些底层具体执行了哪些操作 , 应用层是不知道的 ;
arm 架构的 CPU 中软中断指令是 SVC ;
x86 架构的 CPU 中软中断指令是...int ;
与 软中断 相对应的是 硬中断 ; 硬中断 是由 硬件产生 ;
二、Android NDK 中的系统调用示例
----
系统调用相关的头文件定义在 D:\Microsoft\AndroidNDK64...\android-ndk-r16b\sysroot\usr\include\asm-generic\unistd.h 文件中 ; 在该文件中定义了所有的系统调用 ;
#include <asm/bitsperlong.h