您的位置:首页 > 运维架构 > Linux

linux编程中的资源和限制

2011-11-17 15:09 92 查看
下面一个程序limits.c实现了能够显示程序运行过程中优先级的显示和软硬看门狗的实现:

#include <sys/types.h>

#include <sys/resource.h>

#include <sys/time.h>

#include <unistd.h>

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

void work()

{

FILE *f;

int i;

double x=4.5;

f=tmpfile();

for(i=0;i<10000;i++)

{

fprintf(f,"Do some output");

if(ferror(f)){

fprintf(stderr,"Error writing to temporary file\n");

exit(1);

}

}

for(i=0;i<1000000;i++)

x=log(x*x+3.21);

}

int main()

{

struct rusage r_usage;

struct rlimit r_limit;

int priority;

work();

getrusage(RUSAGE_SELF,&r_usage);

printf("CPU usage: User=%ld.%06ld, System=%ld.%06ld\n",r_usage.ru_utime.tv_sec,r_usage.ru_utime.tv_usec,r_usage.ru_stime.tv_sec,r_usage.ru_stime.tv_usec);

priority=getpriority(PRIO_PROCESS,getpid());

printf("Current priority=%d\n",priority);

getrlimit(RLIMIT_FSIZE,&r_limit);

printf("Current FSIZE limit:soft=%ld,hard=%ld\n",r_limit.rlim_cur,r_limit.rlim_max);

r_limit.rlim_cur=2048;

r_limit.rlim_max=4096;

printf("Setting a 2k file size limit \n");

setrlimit(RLIMIT_FSIZE,&r_limit);

work();

exit(0);

}

在linux命令行中:cc -o limits limits.c -lm

$:./limits

更改优先级:nice ./limits
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: