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;
}
我有两个问题:
- 我想知道,为什么一个需要使用系统调用找到两个数字之间的区别?
- 一般我们什么时候需要使用系统调用?