double ExmapTest::get_pid_size_from_ps(pid_t pid) { list<string> lines; list<string> captures; ok(read_proc_output("ps -e -o pid,vsz", lines), "can read proc output"); Regexp re; stringstream sstr; sstr << "\\s*" << pid << "\\s"; re.compile(sstr.str()); re.grep(lines); is((int) lines.size(), 1, "found line for pid"); re.compile("\\s*(\\d+)\\s+(\\d+)$"); re.match_capture(lines.front(), captures); is((int) captures.size(), 2, "Found my captures"); int size = atoi(captures.back().c_str()); return size * 1024.0; }