加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

ulimit(UL_GDESLIM,0)如何选择工作?

发布时间:2020-12-13 23:25:06 所属栏目:Linux 来源:网络整理
导读:我们正在将我们的C应用程序从Solaris 8迁移到Solaris 10.我在Solaris 10上运行此代码时遇到错误.我正在使用32位 gcc编译器. nFDs = ulimit(UL_GDESLIM,0);n=select(nFDs,set,NULL,NULL); 错误: Error : GetKey_(): select(): Invalid argument 我知道为什么
我们正在将我们的C应用程序从Solaris 8迁移到Solaris 10.我在Solaris 10上运行此代码时遇到错误.我正在使用32位 gcc编译器.

nFDs = ulimit(UL_GDESLIM,0);
n=select(nFDs,&set,NULL,NULL);

错误:

Error : GetKey_(): select(): Invalid argument

我知道为什么我得到这个错误,因为nFD超过1024.
以下是select.h

#ifdef  _LP64 
#define  FD_SETSIZE      65536 
#else 
#define  FD_SETSIZE      1024

你能给我指针ulimit(UL_GDESLIM,0)和选择是如何工作以及我需要修复哪个头?

解决方法

从Oracle的文档中可以看出,Solaris遵循的最大文件描述符存在“硬限制”.但是,可以通过将以下行添加到/ etc / system并重新启动来更改:

set rlim_fd_max = 65536

上面的行将硬限制设置为65536.一旦设置了此硬限制,您就可以使用ulimit内核函数调用更改此属性的“running”值,或者如您在带有系统的C应用程序中显示的那样调用ulimit(…)并选择(…).

资源:
http://docs.oracle.com/cd/E19644-01/817-5051/pt_tuningos.html#wp57451

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读