觀察Linux行為
阿新 • • 發佈:2019-01-08
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 -------當前核心支援的檔案系統型別