- 论坛徽章:
- 0
|
内核版本是Linux-2.6.16的,sys_open系统调用的源码如下:
asmlinkage long sys_open(const char __user *filename, int flags, int mode)
{
long ret;
if (force_o_largefile())
flags |= O_LARGEFILE;
ret = do_sys_open(AT_FDCWD, filename, flags, mode);
/* avoid REGPARM breakage on x86: */
prevent_tail_call(ret);
return ret;
}
这里的force_o_largefile是一个宏定义:
#ifndef force_o_largefile
#define force_o_largefile() (BITS_PER_LONG != 32)
#endif
表达这个意思的这段代码在Linux-2.4的内核也是存在的,但是并不以宏的形式存在的,而是直接写入sys_open函数中的,请问有哪位大侠知道这个force_o_largefile宏定义是什么意思??在2.6的内核中为什么要写成一个宏定义,有什么好处? |
|