私の完全なCMATEアプレットは、githubのhttps://github.com/geniass/mate-resource-applet/tree/cmake(BRANCH CMAKE)にあります。今はハッキーな混乱なので、以下のコードを参照してください。
コンピュータの空きRAMを表示するアプレットが見つからなかったので、基本的にはこれが何であるかです。私はこの情報を取得するためにsysinfoを使用していますが、システムの合計RAM(約4GB、3954 MBを示しています)に対しては正常に機能します。htopは、3954MBのうち3157MBが使用されていることを示しています。
ただし、sysinfoが無料のRAM(136 MB)に与える値は明らかに間違っています(無料のRAMが割り当てられていないRAMか何かである場合、私にはわかりません)。
この質問は同じ問題ですが、私のシステムではmem_unit = 1であるため、mem_unitを含む解決策は機能しません。
同じ値を与える最小限のプログラムは次のとおりです。
#include <stdio.h>
#include <sys/sysinfo.h>
int main() {
/* Conversion constants. */
const long minute = 60;
const long hour = minute * 60;
const long day = hour * 24;
const double megabyte = 1024 * 1024;
/* Obtain system statistics. */
struct sysinfo si;
sysinfo (&si);
/* Summarize interesting values. */
printf ("system uptime : %ld days, %ld:%02ld:%02ld\n",
si.uptime / day, (si.uptime % day) / hour,
(si.uptime % hour) / minute, si.uptime % minute);
printf ("total RAM : %5.1f MB\n", si.totalram / megabyte);
printf ("free RAM : %5.1f MB\n", si.freeram / megabyte);
printf ("mem_unit: : %u\n", si.mem_unit);
printf ("process count : %d\n", si.procs);
return 0;
}
出力:
system uptime : 0 days, 10:25:18
total RAM : 3953.9 MB
free RAM : 162.1 MB
mem_unit: : 1
process count : 531
何が起きてる?フリーラムは私が思っているものではありませんか?