根据进程号获取进程名函数
static gchar *
pid_to_binary_name (gint pid)
{
? gchar * cmd_f;
? FILE? * fcmd;
? if (pid <= 0)
??? return NULL;
? cmd_f = g_strdup_printf ("/proc/%d/cmdline", pid);
? fcmd? = fopen (cmd_f, "r");
? g_free (cmd_f);
? if (fcmd)
??? {
????? gchar buf[256];
????? if (fgets (buf, sizeof (buf), fcmd))
??????? {
????????? /*
?????????? * 0-terminate at first whitespace.
?????????? */
????????? gchar *n = &buf[0];
????????? while ((n < &buf[0] + sizeof(buf) - 1) && *n && !g_ascii_isspace (*n))
??????????? ++n;
????????? *n = 0;
????????? return g_path_get_basename (buf);
??????? }
????? fclose (fcmd);
??? }
? return NULL;
}