美文网首页
程序获取最大并发连接的方法

程序获取最大并发连接的方法

作者: jevian | 来源:发表于2022-02-02 02:29 被阅读0次

    在编写高并发程序时,通常需要考虑系统限制的tcp并发连接数。而这个并发连接数,与程序的运行环境有关,因此最好是在运行过程中监听。方法如下:

    #include <stdio.h>
    #include <unistd.h>

    int main () {
    printf("max open file is %ld\n", sysconf(_SC_OPEN_MAX));
    return 0;
    }

    核心函数是sysconf(_SC_OPEN_MAX),我们大概介绍下该函数:

    需要添加头部unistd.h。大多数这些变量的值在调用进程的生存时间内不变。
    如果出错,那么函数返回-1,并适当地设置errno。
    当没有错误发生时,-1也是一个合法的返回值。
    因此,程序要检查错误,应该在调用sysconf()之前将errno设置为0,然后,如果返回-1,则检验到错误。
    参数name指定我们感兴趣的运行时限制的名字,它必须是以下值中之一(除非另有说明,否则返回值都是整数):
    _SC_2_C_BIND:一个布尔值,指出是否支持POSIXC语言绑定。返回值是_POSIX2_C_BIND。
    _SC_2_C_DEV:一个布尔值,指出是否支持POSIXC语言开发使用工具选项。返回值是_POSIX2_C_DEV。
    _SC_2_C_VERSION:它指出支持哪一个ISOPOSIX.2标准(命令)的版本。返回值是_POSIX2_C_VERSION。
    _SC_2_CHAR_TERM:一个布尔值,指出是否至少支持一个终端。返回值是_POSIX2_CHAR_TERM。
    _SC_2_FORT_DEV:一个布尔值,指出是否支持FORTRAN开发使用工具选项。返回值是POSIX2_FORT_DEV。
    注意:1、CLK_TCK的值是可变的,因此,不应该假设它是一个编译时间常量。
    2、调用setrlimit会使OPEN_MAX的值发生改变。
    3、通过将sysconf(_SC_PHYS_PAGES)和sysconf(_SC_PAGESIZE)相乘,来确定物理内存的总量(以字节为单位)可以返回一个值。

    相关文章

      网友评论

          本文标题:程序获取最大并发连接的方法

          本文链接:https://www.haomeiwen.com/subject/fvilkrtx.html