1. 程式人生 > 其它 >linux下通過C語言程式設計實現讀取系統資訊 - Meminfo

linux下通過C語言程式設計實現讀取系統資訊 - Meminfo

技術標籤: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; }

三、編譯

在這裡插入圖片描述

四、執行效果

在這裡插入圖片描述