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
#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
相关文章推荐
- linux资源限制函数:getrlimit,setrlimit函数(设置文件打开数)
- Docker背后的内核知识——cgroups资源限制
- 收藏:ASP.NET提供文件下载函数(支持大文件、续传、速度限制、资源占用小) (转自: Arhrun)
- Linux入职基础-5.17_ulimit限制shell启动进程所占用资源(应用实战1)
- Linux-ulimit-系统资源限制
- centos7下安装docker(9容器对资源的使用限制-内存)
- 利用ulimit对资源进行限制
- windows系统怎么破解默认限制的20%网速充分利用全部宽带资源
- Docker 限制容器资源
- AD系列四 限制用户访问共享资源
- Linux中进程资源限制
- JSP页面中限制对 Web 资源的访问
- Linux下的进程资源的限制(struct rlimit)详解
- fedora centos,ubuntu关于进程资源限制的问题
- 【翻译】铁三角(规模、时间和资源的限制)并不适用于软件开发
- linux系统资源限制-ulimit详解:
- 资源限制
- C# 并行编程 之 限制资源的并发访问 使用SemaphoreSlim
- Android 分割合并文件 assets res/raw 存放资源的限制
- Linux 内核资源限制 -- 栈限制