linux下通過C語言程式設計實現讀取系統資訊 - Meminfo
阿新 • • 發佈:2021-01-27
技術標籤:C語言
在linux下程式設計,常常需要獲取系統資訊,以下通過程式設計實現抓取系統資訊,可以將下列程式碼作為一個模板來修改實現自己的需求。
文章目錄
一、需求
抓取系統記憶體資訊MemFree項的值
二、原始碼
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
int main(int agrc, char **argv)
{
char buf[64] = {'\0'};
FILE *Stream;
int MemFree_info;
// popen執行shell命令並儲存返回結果內容
// 1、先執行cat /proc/meminfo 獲取系統記憶體資訊
// 2、在步驟1的返回結果上執行 grep MemFree 命令查詢對應項
// 3、在步驟2的返回結果上執行 awk {'print $2'} 命令列印第二個引數,以空格作為分割,如字串“MemFree: 1431496 kB”,則$2 為“1431496”
Stream = popen("cat /proc/meminfo | grep MemFree | awk {'print $2'}" , "r");
fread(buf, sizeof(char), sizeof(buf), Stream); // 讀出Stream檔案描述符中的流資料,不足64位元組,剩餘空間內容不變
MemFree_info = atoi(buf); //注意MemFree_info需要定義int型別,否則賦值出錯
printf("MemFree size:%d(kb)\n", MemFree_info);
pclose(Stream);
return 0;
}