获取进程默认可以打开的最大文件描述符数

来源:互联网 发布:淘宝店铺层级怎么算 编辑:程序博客网 时间:2024/05/17 06:26

实现文件:

//max_fd_cnt.h#ifndef _OPEN_MAX#define _OPEN_MAXlong open_max(void);#endif
//max_fd_cnt.c#include "max_fd_cnt.h"#include <errno.h>#include <limits.h>#include <unistd.h>#include <stdio.h>#ifdef OPEN_MAXstatic long openmax = OPEN_MAX#elsestatic long openmax = 0;#endif/*  if OPEN_MAX is indeterminate, this might be inadequate*/#define OPEN_MAX_GUESS 256long open_max(void){    if(openmax == 0){        errno = 0;        if((openmax = sysconf(_SC_OPEN_MAX)) < 0){           if(errno == 0)               openmax = OPEN_MAX_GUESS; //it's indeterminate,return -1 and not change errno           else               perror("sysconf error for _SC_OPEN_MAX");//_SC_OPEN_MAX is invalid,errno is set EINVAL        }    }   return(openmax);}

测试程序:

//getcnt.c#include <stdio.h>#include "max_fd_cnt.h"int main(void){    printf("open max:%ld\n",open_max());}

编译执行:

#gcc getcnt.c max_fd_cnt.c -o getcnt#./getcntopen max:1024
0 0
原创粉丝点击