C++:linuxプロセス情報の読み込み
6510 ワード
C++:プロセス情報の読み出し 1. メモリ使用量 1.メモリ使用量
linuxシステムでは、プロセスの情報は/proc/pid/statusファイルに保存され、pidはプロセスのIDです.statusファイルには、RssAnon:148 kBというものがあります.次のプログラムは、これを読み込むことで、プロセスが使用するメモリサイズを取得します.
[参考]
linuxシステムでは、プロセスの情報は/proc/pid/statusファイルに保存され、pidはプロセスのIDです.statusファイルには、RssAnon:148 kBというものがあります.次のプログラムは、これを読み込むことで、プロセスが使用するメモリサイズを取得します.
#include
#include
#include
using namespace std;
template<typename T> inline string toString(const T& var) {
stringstream ss;
ss << var;
return ss.str();
}
//KiB
int getMem(pid_t pid) {
string file_name = "/proc/" + toString(pid) + "/status";
FILE *fd = fopen(file_name.c_str(), "r");
char key_value[1024];
string key;
int value = -1;
stringstream ss;
while(fgets(key_value, sizeof(key_value), fd)) {
ss.str("");
ss.clear();
ss << key_value;
ss >> key >> value;
if(key.compare("RssAnon:") == 0)
break;
}
fclose(fd);
return value;
}
int main() {
cout << "pid:" << getpid() << " mem:" << getMem(getpid()) << "KiB" << endl;
}
[参考]