首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

linux内核中的文件描述符(4)-fd的分配-get_unused_fd

2013-01-19 
linux内核中的文件描述符(四)--fd的分配--get_unused_fdlinux内核中的文件描述符(四)--fd的分配--get_unus

linux内核中的文件描述符(四)--fd的分配--get_unused_fd

linux内核中的文件描述符(四)--fd的分配--get_unused_fd

Kernel version:2.6.14

CPU architecture:ARM920T

Author:ce123(http://blog.csdn.net/ce123)

在linux内核中主要有两个函数涉及到文件描述符的分配:get_unused_fd和locate_fd。本文主要讲解get_unused_fd,将会在下一篇文章中介绍locate_fd。首先给出get_unused_fd的定义(fs/open.c):

#define INIT_SIGNALS(sig) {\.count= ATOMIC_INIT(1), \.wait_chldexit= __WAIT_QUEUE_HEAD_INITIALIZER(sig.wait_chldexit),\.shared_pending= { \.list = LIST_HEAD_INIT(sig.shared_pending.list),\.signal =  {{0}}}, \.posix_timers = LIST_HEAD_INIT(sig.posix_timers),\.cpu_timers= INIT_CPU_TIMERS(sig.cpu_timers),\.rlim= INIT_RLIMITS,\}include\asm-generic\resource.h#define INIT_RLIMITS\{\[RLIMIT_CPU]= {  RLIM_INFINITY,  RLIM_INFINITY },\[RLIMIT_FSIZE]= {  RLIM_INFINITY,  RLIM_INFINITY },\[RLIMIT_DATA]= {  RLIM_INFINITY,  RLIM_INFINITY },\[RLIMIT_STACK]= {       _STK_LIM,   _STK_LIM_MAX },\[RLIMIT_CORE]= {              0,  RLIM_INFINITY },\[RLIMIT_RSS]= {  RLIM_INFINITY,  RLIM_INFINITY },\[RLIMIT_NPROC]= {              0,              0 },\[RLIMIT_NOFILE]= {       INR_OPEN,       INR_OPEN },\[RLIMIT_MEMLOCK]= {    MLOCK_LIMIT,    MLOCK_LIMIT },\[RLIMIT_AS]= {  RLIM_INFINITY,  RLIM_INFINITY },\[RLIMIT_LOCKS]= {  RLIM_INFINITY,  RLIM_INFINITY },\[RLIMIT_SIGPENDING]= { 0,       0 },\[RLIMIT_MSGQUEUE]= {   MQ_BYTES_MAX,   MQ_BYTES_MAX },\[RLIMIT_NICE]= { 0, 0 },\[RLIMIT_RTPRIO]= { 0, 0 },\}#define NR_OPEN (1024*1024)/* Absolute upper limit on fd num */#define INR_OPEN 1024/* Initial setting for nfile rlimits */
从上面的代码我们可以看到rlim_cur = 1024,也就是说进程最多可以打开1024个文件。

2楼dog2503天前 23:30
1234abcd4321qwer!·#¥1234
1楼oMaSaiKe125天前 11:39
124123gsdfsfdsafasdfa

热点排行