Linux下Proc文件系統實驗

與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);
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章