zoukankan      html  css  js  c++  java
  • Linux环境资源限制例程

     1 #include <sys/types.h>
     2 #include <sys/resource.h>
     3 #include <sys/time.h>
     4 #include <unistd.h>
     5 #include <stdio.h>
     6 #include <math.h>
     7 
     8 void work()
     9 {
    10     FILE *f;
    11     int i;
    12     double x=4.5;
    13     f=tmpfile();
    14     for(i=0;i<10000;i++);
    15     {
    16         fprintf(f,"Do some output
    ");//将一个字符串写入临时文件10000
    17         if(ferror(f))
    18         {
    19             fprintf(stderr,"Error writing to temporary file
    ");
    20             exit(1);
    21         }
    22     }//完成
    23     for (i=0;i<1000000;i++)
    24         x=log(x*x+3.21);//做一些算术运算
    25 }
    26 
    27 int main()
    28 {
    29     struct rusage r_usage;
    30     struct rlimit r_limit;
    31     int priority;
    32     
    33     work();
    34     getrusage(RUSAGE_SELF, &r_usage);//第一个参数代表仅返回当前程序的使用信息,保存在第二个参数中
    35     
    36     printf("CPU usage: User=%ld.%06ld,System=%ld.%06ld
    ",
    37     r_usage.ru_utime.tv_sec,r_usage.ru_utime.tv_usec,
    38     r_usage.ru_stime.tv_sec,r_usage.ru_stime.tv_usec);//打印出cpu消耗
    39     
    40     priority=getpriority(PRIO_PROCESS, getpid());
    41     printf("Current priority = %d
    ", priority);//获取当前优先级
    42     
    43     getrlimit(RLIMIT_FSIZE,&r_limit);//获取当前文件限制
    44     printf("Current FSIZE limit: soft=%ld, hard=%ld
    ",r_limit.rlim_cur,r_limit.rlim_max);
    45     
    46     r_limit.rlim_cur=2048;
    47     r_limit.rlim_max=4096;
    48     printf("Setting a 2k file size limit
    ");
    49     setrlimit(RLIMIT_FSIZE,&r_limit);
    50     
    51     work();
    52     exit(0);
    53 }

    运行效果

     1 jason@t61:~/c_program$ ./limits 
     2 CPU usage: User=0.056000,System=0.000000
     3 Current priority = 0
     4 Current FSIZE limit: soft=-1, hard=-1
     5 Setting a 2k file size limit
     6 jason@t61:~/c_program$ ulimit 
     7 unlimited
     8 jason@t61:~/c_program$ nice ./limits 
     9 CPU usage: User=0.060000,System=0.000000
    10 Current priority = 10
    11 Current FSIZE limit: soft=-1, hard=-1
    12 Setting a 2k file size limit

    万事走心 精益求美


  • 相关阅读:
    ava新手入门详细介绍
    FreeRTOS源代码的编程标准与命名约定
    Java基础学习笔记
    如何提高单片机C语言代码效率
    java三大框架介绍
    Java代码优化六大原则
    单片机C语言基础编程源码六则2
    单片机C语言基础编程源码六则
    Java编程代码性能优化总结
    SAP ALV报表模板
  • 原文地址:https://www.cnblogs.com/kongchung/p/4603597.html
Copyright © 2011-2022 走看看