linux下getrlimit与sysconf函数

#include <stdio.h>
#include <sys/time.h>
#include <sys/resource.h>

int main(int argc, char *argv[])
{
  struct rlimit nofile_rlmt;
  if (getrlimit(RLIMIT_NOFILE, &nofile_rlmt) != -1) {
    printf("获取进程最大能打开的文件描写叙述符个数信息:\n"
        "rlim_cur(Soft limit):%d"
        "\nrlim_max(Hard limit (ceiling for rlim_cur)): %d\n",
        nofile_rlmt.rlim_cur, nofile_rlmt.rlim_max);
  }
}

getrlimit与setlimit函数具体解释能够參照:

http://www.cnblogs.com/niocai/archive/2012/04/01/2428128.html

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>		//sysconf

#define ONE_MB (1024 * 1024)

int main(int argc, char **argv[])
{
  long num_cpu = sysconf(_SC_NPROCESSORS_ONLN);
  printf("CUP的个数:%ld\n", num_cpu);

  long page_size = sysconf(_SC_PAGESIZE);
  printf("系统页面的大小:%ld K\n", page_size);
  long num_pages = sysconf(_SC_PHYS_PAGES);
  printf("系统中物理页面个数:%ld 个\n", num_pages);
  long free_pages = sysconf(_SC_AVPHYS_PAGES);
  printf("系统中可用的页面个数:%ld 个\n", free_pages);
  long long mem = (long long)((long long)num_pages * (long long)page_size);
  mem /= ONE_MB;
  long long free_mem = (long long)((long long)free_pages * (long long)page_size);
  free_mem /= ONE_MB;
  printf("总共同拥有 %lld MB的物理内存,空暇的物理内存有 %lld MB\n", mem, free_mem);

  long open_max = sysconf(_SC_OPEN_MAX);
  printf("每一个进程最大打开的文件个数:%ld\n", open_max);  

  return 0;
}

sysconf、pathconf、fpathconf函数具体解释參照:

http://xingyunbaijunwei.blog.163.com/blog/static/7653806720119122344450/

时间: 2024-11-24 05:09:04

linux下getrlimit与sysconf函数的相关文章

Linux系统调用--getrlimit()与setrlimit()函数详解

http://www.cnblogs.com/niocai/archive/2012/04/01/2428128.html 功能描述:获取或设定资源使用限制.每种资源都有相关的软硬限制,软限制是内核强加给相应资源的限制值,硬限制是软限制的最大值.非授权调 用进程只可以将其软限制指定为0~硬限制范围中的某个值,同时能不可逆转地降低其硬限制.授权进程可以任意改变其软硬限制.RLIM_INFINITY的 值表示不对资源限制. 用法: #include <sys/resource.h>int getr

linux 下getch()函数实现

//调用 //char *ptr = (char *)malloc(sizeof(char) * 128); //ptr = get_passwd(); //printf("\n"); #include<stdio.h> #include<termios.h> #include<unistd.h> #include<assert.h> #include<string.h> #include <stdlib.h> i

linux下c++filter查看函数修饰名

c++函数在linux系统下编译之后会变成类似下面的样子: _ZNK4Json5ValueixEPKc 在linux命令行使用c++filter: [email protected]:~ $ c++filt _ZNK4Json5ValueixEPKc Json::Value::operator[](char const*) const 这样就得到函数的原始名称 如果没有安装c++filter, 可以自行搜索.linux下c++filter查看函数修饰名,布布扣,bubuko.com

Linux Linux下特殊的printf函数

Linux下,printf函数必须以'\n'结尾才会立刻输出到屏幕,如果没有'\n'直到输出缓冲区满了以后才会打印到屏幕上(敲击换行也算),如果需要不换行的输出,一般可以使用write函数代替.'\n'有清空缓存的作用

Linux下c编程rename函数导致的问题

前段时间在部署代码的时候,发现一个比较"诡异"的问题 相同的环境下(CentOs 6.5),开发说在其本机的虚拟机汇总测试是正常的,部署到正式环境中时,就会出现问题.相同的函数,总是执行失败.在另一台测试也是完全正常 开发说是服务器安装的原因,来来回回安装了N次.真TM郁闷 然后又说是权限的问题,包的问题,自己安装,服务器拿回家升级,重买服务器.这个拿回去给他妈用等等等等--我都懒的理他 首先说权限问题,我说跟测试正常的那台机器完全相同,说不行,好吧,给你777 又说是包没安装,我说那

Linux下的select 与函数

Select    循环与菜单 它的主要用于创建菜单,按数字排列顺序的菜单项将呈现出列表的形式显示在标准错误输出上,并显示PS3提示符请求用户输入(默认时,PS3的值为"#?").心啊是PS3提示符后,shell等待用户输入,输入的应当是菜单列表中的一个数字,输入值会保存在一个shell的特殊变量REPLY中国,它与选项列表中相应的括号后面的字符串相关联. case命令和select命令联合使用时,用户可以从菜单中进行选择,并基于选项执行相应的命令. 1)select 格式 selec

linux下confstr与uname函数_获取C库与内核信息

#include <stdio.h> #include <sys/utsname.h> //uname int main(int argc, char **argv[]) { struct utsname u; if (uname(&u) != -1) { printf("获取当前内核的名称和信息例如以下\n" "sysname:%s\n" "nodename:%s\n" "release:%s\n&qu

Linux 下stat和access函数

1.stat既有命令也有同名函数,用来获取文件Inode里主要信息(即文件类型.文件权限.创建/修改/访问时间等就是ls -l看到的相关的信息),stat 跟踪符号链接,lstat不跟踪符号链接.可以通过man 2 stat查看相关的信息. #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int stat(const char *path, struct stat *buf); int f

linux下awk内置函数的使用(split/substr/length)

一.split 初始化和类型强制  awk的内建函数split允许你把一个字符串分隔为单词并存储在数组中.你可以自己定义域分隔符或者使用现在FS(域分隔符)的值.格式: split (string, array, field separator)   split (string, array)  -->如果第三个参数没有提供,awk就默认使用当前FS值. 例1:替换分隔符 time="12:34:56" out=`echo $time | awk '{split($0,a,&qu