1. 程式人生 > >觀察Linux行為

觀察Linux行為

1、實驗內容

     (1)理解linux作業系統以及./proc檔案。

     (2)熟悉codeblocks,學習linux下C程式除錯技術。

     (3)根據給定的程式觀察cpuinfo/version/stat/uptime。

     (4)程式設計實現對meminfo/loadavg/interrupts/filesystem的觀測。

2、實驗環境        

         LINUX-Ubantu codeblocks

3、實驗步驟(過程)

         (1)安裝實驗環境

4、解讀實驗內容

      編寫實驗程式碼,使用gcc編譯並執行程式test1.c,使用codeblocks程式設計實現對meminfo/ loadavg/ interrupts/ filesystem的觀測。

#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>

void meminfo()
{
    int i;
    char c[512];
    FILE *in;
    in = fopen("/proc/meminfo","r");
    printf("meminfo:\n");
    for(i = 0;i < 47;i++)
    {
        fgets(c,512,in);
        printf("%s",c);
    }
    fclose(in);
}
void loadavg()
{
    char c[512];
    FILE *in;
    in = fopen("/proc/loadavg","r");
    printf("loadavg:\n");
    fgets(c,512,in);
    printf("%s",c);
    fclose(in);
}
void interrupts()
{
    int i;
    char c[512];
    FILE *in;
    in = fopen("/proc/interrupts","r");
    printf("interrupts:\n");
    for(i = 0;i < 61;i++)
    {
        fgets(c,512,in);
        printf("%s",c);
    }
    fclose(in);
}
void filesystems()
{
    int i;
    char c[512];
    FILE *in;
    in = fopen("/proc/filesystems","r");
    printf("filesystems:\n");
    for(i = 0;i < 25;i++)
    {
        fgets(c,512,in);
        printf("%s",c);
    }
    fclose(in);
}
int main()
{
    meminfo();
    loadvag();
    interrupts();
    filesystems();
    return 0;
}



Cpuinfo-            ----------CPU資訊E3-1231v3 主頻 3.4Hz
Version             -----------核心版本Linux3.2.0-29
Stat                    ------------程序狀態
Uptime              ---------系統uptime
Meminfo           --------記憶體資訊
Loadavg           --------最後1,5,15的平均負載
Interrupts           --------- 中斷使用情況
Filesystem         -------當前核心支援的檔案系統型別