Linuxでメモリ情報を得るソースコード
Powered by dKingyo Visual C++ | Python | TOEIC 突破 | ツクール | 自作パソコン
Win32APIの場合、システムの情報を得る場合は専用のAPIがあるが、HDBENCH cloneのソースコードを見る限り、fopenやpopenでproc/***infoやsysctlのプロセスから出力される値をパースして利用するらしい。
しかし、私の環境だとパース部分が間違っているようで表示される値が全く違う。これは欠陥だ。おそらく昔のディストリビューションでは正しく動いたのだろうと思う。
とりあえず、イディオムをメモ
メモリを情報取得
meminfoで
fp = fopen("/proc/meminfo","r"); if(fp){ //なにか操作して、close fclose(fp); }
sysctlで
fp = fopen("/sbin/sysctl hw.physmem hw.usermem","r"); if(fp){ fscanf(fp,"%*s %d",totalmem); fscanf(fp,"%*s %d",freemem); //なにか操作して、close fclose(fp); }