Linux下Proc文件系统实验

来源:互联网 发布:linux给用户赋权限 编辑:程序博客网 时间:2024/06/05 19:04

与proc虚拟文件系统的接口程序

针对Linux的文件对写进行操作,它以文件系统的方式为访问系统内核数据的操作提供接口,通过对proc文件内容的读取,了解到系统的内核信息,对内核升级和修改内核起来很大的作用,对非系统态的用户有了很大方便用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。

1、内存总量

2、可用内存

3、系统平均负荷

#include<stdio.h>int main(){FILE *fp;char mem[51];float load1,load2,load3;fp=fopen("/proc/meminfo","r");readCharline(fp,mem,50);printf("%s\n",mem);readCharline(fp,mem,50);printf("%s\n",mem);fclose(fp);fp=fopen("/proc/loadavg","r");fscanf(fp,"%f %f %f",&load1,&load2,&load3);fclose(fp);printf("load :\nlast minute    :%f\nlast 5 minutes :%f\nlast 15 minutes:%f\n",load1,load2,load3);}int readCharline(FILE *fp,char *s,int buf){  char c;  int i=0;  while(((c=fgetc(fp))!='\n')&&(i<buf))  {    s[i]=c;    i++;   }  s[i]='\0';  return i;}

1、提取cpu类型

2、提取内核版本

#include<stdio.h>#include<time.h>void main(){FILE *fp1,*fp2;int c,i=0;fp1=fopen("/proc/cpuinfo","r");fp2=fopen("/proc/version","r");while((c=fgetc(fp2))!=EOF)printf("%c",c);sleep(5);fclose(fp2);while((c=fgetc(fp1))!=EOF){if(c=='\n'){i++;}if(i==4)printf("%c",c);}printf("\n");fclose(fp1);}



原创粉丝点击