📄 p5-12.c
字号:
#include <sys/time.h>#include <sys/resource.h>#include <unistd.h>#include <stdio.h>#include <math.h>#include "err_exit.h"void work(){ FILE *fp; int i; double x = 4.5; if ((fp = tmpfile()) == NULL) err_exit("tmpfile error"); for(i = 0; i < 10000; i++){ fprintf(fp,"Do some output\n"); if(ferror(fp)){ fprintf(stderr,"Error writing to temorary 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(); /* 查看work用去的CPU时间 */ 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); /* 改变文件大小限制为2K */ r_limit.rlim_cur = 2048; r_limit.rlim_max = 4096; printf("Setting a 2K file size limit\n"); setrlimit(RLIMIT_FSIZE, &r_limit); /* 尝试降低微调值 */ priority=setpriority(PRIO_PROCESS, getpid(),-20); if (priority<0&&errno==EACCES) printf("non super-user attempted to lower a process priority\n"); priority=getpriority(PRIO_PROCESS, getpid()); printf("Current priority=%d\n",priority); work(); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -