0
我已經看到了這個例子中,_syscall宏:使用用戶空間應用
#include <stdio.h>
#include <linux/unistd.h>
#include <sys/syscall.h>
#define __NR_getjiffies 320
#define __NR_diffjiffies 321
#define __NR_pdiffjiffies 322
_syscall0(long, getjiffies);
_syscall1(long, diffjiffies, long, ujiffies);
_syscall2(long, pdiffjiffies, long, ujiffies, long*, presult);
int main()
{
long jifs, result;
int err;
jifs = getjiffies();
printf("difference is %lx\n", diffjiffies(jifs));
err = pdiffjiffies(jifs, &result);
if (!err) {
printf("difference is %lx\n", result);
} else {
printf("error\n");
}
return 0;
}
我有兩個問題:
- 我想知道,爲什麼一個需要使用系統調用找到兩個數字之間的區別?
- 一般我們什麼時候需要使用系統調用?