跳至正文

Linux 内核中的巧妙 — 用宏定义函数

  在内核初始化的时候,调用的fork是一个用宏定义的函数,什么意思呢:
    static inline _syscall0(int,fork)
  这样就定义了一个函数int fork(void) ,至于
_syscall0的代码,看下面:
#define _syscall0(type,name) \
type name(void) \
{ \
long res; \
asm volatile ("int $0x80" \
        : "=a" (
res) \
        : "0" (_NR##name)); \
if (res >= 0) \
        return (type)
res; \
errno = -__res; \
return –1; \
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注