システムにインストールされている RAM の量をプログラムで判断するために、次の C++ 関数を作成しました。それは機能しますが、これを行うためのより簡単な方法があるべきだと私には思えます。何か不足していますか?
getRAM()
{
FILE* stream = popen("head -n1 /proc/meminfo", "r");
std::ostringstream output;
int bufsize = 128;
while( !feof(stream) && !ferror(stream))
{
char buf[bufsize];
int bytesRead = fread(buf, 1, bufsize, stream);
output.write(buf, bytesRead);
}
std::string result = output.str();
std::string label, ram;
std::istringstream iss(result);
iss >> label;
iss >> ram;
return ram;
}
まず、popen("head -n1 /proc/meminfo")
システムから meminfo ファイルの最初の行を取得するために使用しています。そのコマンドの出力は次のようになります
MemTotal: 775280 kB
その出力を にistringstream
取得したら、それをトークン化して必要な情報を取得するのは簡単です。このコマンドの出力を読み取る簡単な方法はありますか? システム RAM の量を読み取るための標準 C++ ライブラリ呼び出しはありますか?