select的限制

摘要:
标准时间>信号.h>#包括<}而(0)intmain(void){structrlimitrl;(int)rl.rlim_max);rl.rlim_cur=2048;rl.rlm_max=2048;&0)ERR_EXIT(“getrlimit”);

/*
一、select实现并发服务器并发的两点限制
1、一个进能够打开的最大文件描述符限制。可以通过两种方式修改
ulimit -n :获取最大文件描述符个数
ulimit -n 2048:修改为2048个
另外可以通过以下程序修改,利用 setrlimit 不能改父进程的限制,只能改当前进程和子进程能够打开的最大文件描述符限制
  int getrlimit(int resource, struct rlimit *rlim); //获取系统资源限制     要获取的资源为RLIMIT_NOFILE
  int setrlimit(int resource, const struct rlimit *rlim); 
  

  struct rlimit {
    rlim_t rlim_cur; // Soft limit
    rlim_t rlim_max; //Hard limit (ceiling for rlim_cur)
  };
2、select中的fd_set集合容量的限制(FD_SETSIZE),修改宏的值,这需要重新编译内核
*/

#include<unistd.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#include<errno.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<signal.h>
#include <sys/time.h>

#include <sys/resource.h>
#define ERR_EXIT(m)
do
{
  perror(m);
  exit(EXIT_FAILURE);
}while(0)
int main(void)
{
  struct rlimit rl;
  if(getrlimit(RLIMIT_NOFILE,&rl)<0)
    ERR_EXIT("getrlimit");
  printf("%d
",(int)rl.rlim_max);

  rl.rlim_cur=2048;
  rl.rlim_max=2048;
  if(setrlimit(RLIMIT_NOFILE,&rl)<0)
    ERR_EXIT("setrlimit");
  if(getrlimit(RLIMIT_NOFILE,&rl)<0)
    ERR_EXIT("getrlimit");
  printf("%d
",(int)rl.rlim_max);

return 0;
}

免责声明:文章转载自《select的限制》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇opencv学习心得第二章纯css3 实现的焦点图下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

js动态设置根元素的rem方案

方案需求: rem 单位在做移动端的h5开发的时候是最经常使用的单位。为解决自适应的问题,我们需要动态的给文档的根节点添加font-size 值。 使用mediaquery 可以解决这个问题,但是每一个文件都引用一大串的font-size 值很繁琐,而且值也不能达到连续的效果。 就使用js动态计算给文档的fopnt-size 动态赋值解决问题。 设计稿以7...

快捷键 Msg消息

https://baike.baidu.com/item/MSG/16826909?fr=aladdin https://docs.microsoft.com/en-us/windows/desktop/api/winuser/ns-winuser-tagmsg https://blog.csdn.net/wh_2396/article/details/5...

java多线程文件上传服务器

 描述: (1)jdk自带线程池见 JDK自带线程池配置 (2)此上传文件服务器中上传文件的后缀名通过第一段缓冲字符流传递,此缓冲字符流大小为1024,在文件接收端以1024接收、处理。 1、服务器代码如下(使用jdk自带线程池): 1 /** 2 * 服务器处理多线程问题 3 * 4 * 1.因为服务器是要很多人访问的,因此里面一定要用多...

记一次读取json配置文件,引发的堆栈溢出

读取配置文件的原代码 /// <summary> /// 获取配置 /// </summary> /// <param name="JsonFileName">json文件路径</param> /// <returns></re...

IDEA新建MavenWeb项目并通过Tomcat运行HelloWorld以及运行简单的Servlet类

IDEA新建MavenWeb项目并通过Tomcat运行HelloWorld以及运行简单的Servlet类 由于在IDEA中新建Maven项目配置web中遇到很多坑,目前在这边记录一下 一、运行环境: IntelliJ IDEA Version 2018.3.4 (IDEA2018)  、 JDK1.8 二、运行中所需安装包以及最终的项目 项目ZIP 链接...

MyBatis中动态sql的模糊搜索、foreach实现In集合的用法

场景 在使用MyBatis的动态sql时,常见的是传递一个ID的数组,查询记录的 ID在这个数组中的记录和模糊搜索这两种场景。 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 模糊搜索的实现 mapper接口写法: public L...