使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 《Linux内核分析》笔记
内核态和系统调用
操作系统将进程划分为内核态和用户态,用户的程序运行在用户态下,而涉及低级和设备资源的调用在内核态中完成。为了方便用户程序使用各种系统资源,操作系统为我们提供了系统调用,而避免用户之间操作各种系统资源所带来的隐患。
实验原理
使用系统调用的方式通常有使用库函数调用和中断传入系统调用号的方式两种。
选取getuid和getgid这两个系统调用作为例子,功能分别是获取用户ID和用户组ID。
调用库函数版本:
#include <stdio.h>
#include <unistd.h>
int main()
{
int uid, gid;
uid = getuid();
gid = getgid();
printf(