(3)调用do_fast_syscall_32 -> do_syscall_32_irqs_on() 从系统调用表中找到相应处理函数进行调用。...glibc源码路
径sysdeps/posix/open64.c中:
#include
(5)看到其实是执行__lib_open,__libc_open定义在glibc源码路径sysdeps.../unix/sysv/linux/generic/open.c:
{
(6)最后执行到SYSCALL_CANCEL宏,glibc源码路径sysdeps/unix/sysdep.h里有着SYSCALL_CANCEL...宏定义:
INLINE_SYSCALL (name, 4, a1, a2, a3, a4, a5)
根据相关宏定义展开:
SYSCALL_CANCEL (openat, AT_FDCWD, file,...oflag, mode);
(7)INLINE_SYSCALL之后宏定义与硬件和os有关,在glibc源码路径sysdeps/unix/sysv/linux/x86_64/sysdep.h中定义:
#