#include <iostream>
#include <fstream>
using namespace std;
#include <stdio.h>
#include <stdlib.h>
#include <pwd.h>
#include <string.h>
std::string process_name(pid_t pid)
{
char filepath[64] = { 0 };
snprintf(filepath, sizeof(filepath), "/proc/%d/stat", pid);
std::string name;
std::ifstream istrm(filepath);
if (istrm.is_open())
{
std::string line;
std::getline(istrm, line);
auto lp = line.find('(');
auto rp = line.rfind(')');
if (lp != std::string::npos && rp != std::string::npos && lp < rp)
{
name = line.substr(lp + 1, rp - lp - 1);
}
istrm.close();
}
return name;
}
01-09