話不多說,上C#代碼
using System;
using System.Linq;
namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine($@"當前溫度:{GetCpuTemperature()}°");
Console.WriteLine($@"總共內存:{GetMemoryUseStatus(0)} MB");
Console.WriteLine($@"已經使用:{GetMemoryUseStatus(1)} MB");
Console.WriteLine($@"還未使用:{GetMemoryUseStatus(2)} MB");
}
/// <summary>
/// 獲取樹莓派CPU溫度
/// </summary>
/// <returns></returns>
public static float GetCpuTemperature() {
return float.Parse(System.IO.File.ReadAllText(@"/sys/class/thermal/thermal_zone0/temp")) / 1000;
}
/// <summary>
/// 獲取樹莓派內存使用情況
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
public static int GetMemoryUseStatus(int info) {
string meminfo = System.IO.File.ReadAllText(@"/proc/meminfo");
//給出一段參考,實際情況可以刪掉
/*string meminfo =
@"MemTotal: 765604 kB
MemFree: 329032 kB
MemAvailable: 498452 kB
Buffers: 23168 kB
Cached: 200980 kB
SwapCached: 0 kB
Active: 249832 kB
Inactive: 112576 kB
Active(anon): 138644 kB
Inactive(anon): 17800 kB
Active(file): 111188 kB
Inactive(file): 94776 kB
Unevictable: 16 kB
Mlocked: 16 kB
SwapTotal: 102396 kB
SwapFree: 102396 kB
Dirty: 132 kB
Writeback: 0 kB
AnonPages: 138280 kB
Mapped: 109408 kB
Shmem: 18180 kB
Slab: 49476 kB
SReclaimable: 16864 kB
SUnreclaim: 32612 kB
KernelStack: 2200 kB
PageTables: 6312 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 485196 kB
Committed_AS: 1356796 kB
VmallocTotal: 1294336 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
Percpu: 656 kB
CmaTotal: 8192 kB
CmaFree: 6028 kB";*/
var memory = meminfo.Split(' ').Where(o => o != string.Empty).ToList();
return int.Parse(memory[info * 2 + 1])/1024;//返回MB
}
}
}
效果如下
總結,linux的這個“一切都是文件”這個設計是真的爽!