⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p5-12.c

📁 SUN Solaris8平台下进程间通信
💻 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 + -