修改文件描述符限制数

一、代码修改进程的文件描述符限制数,仅当前进程生效

#include 
/*
 * 修改进程文件描述符限制数
 */
bool reset_fd_limit(int32_t fdNum){
    bool bRet = false;
    do {
        struct rlimit rl;
        if (getrlimit(RLIMIT_NOFILE, &rl) < 0) {
            logerror<<"getrlimit failed."<< LOGEND;
            break;
        }
        rl.rlim_cur = fdNum;
        rl.rlim_max = fdNum;
        if (setrlimit(RLIMIT_NOFILE, &rl) < 0) {
            logerror << "setrlimit failed." << LOGEND;
            break;
        }
        loginfo << "setrlimit succeed, fdNum = " << fdNum << LOGEND;
        bRet = true;
    }while (0);
    return bRet;
}

二、直接修改系统的文件描述符限制数,对操作系统所有程序生效

    #使用root用户操作
    vim /etc/profile
    #文件末尾增加两行
    ulimit -c unlimited
    ulimit -n 655350
    #保存退出后使之生效
    source /etc/profile
    #检测是否生效
    ulimit -a | grep open
    open files              (-n) 655350

你可能感兴趣的:(C++)