linux内核中的文件描述符(五)--fd的分配--locate_fd
linux内核中的文件描述符(五)--fd的分配--locate_fd
Kernel version:2.6.14
CPU architecture:ARM920T
Author:ce123(http://blog.csdn.net/ce123)
继续上一篇博客的内容,分析另一个文件描述符fd的分配函数locate_fd。dup系统调用用于复制一个文件描述符对应的文件,返回值是个文件描述符。在前面的文章中,我们已经分析过了dup的源码(http://blog.csdn.net/ce123/article/details/8444482),在这里我们深入分析locate_fd函数,其定义如下:
typedef __kernel_fd_setfd_set;#undef __NFDBITS#define __NFDBITS(8 * sizeof(unsigned long))#undef __FD_SETSIZE#define __FD_SETSIZE1024#undef __FDSET_LONGS#define __FDSET_LONGS(__FD_SETSIZE/__NFDBITS)#undef __FDELT#define__FDELT(d)((d) / __NFDBITS)#undef __FDMASK#define__FDMASK(d)(1UL << ((d) % __NFDBITS))typedef struct {unsigned long fds_bits [__FDSET_LONGS];} __kernel_fd_set;fds_bits是一个long型数组,共有32个元素,共有1024bit。