软件运行之后会进行随机进程名如何解决

如图所示,每次启动都是不一样的英文+数字的进程名

旧代码:

int cmp_char(const void *a1, const void *a2)
{
    return *(char *)a2 - *(char *)a1;
}
int getPID1(const char *a1)

{

 int id = 0;

 DIR *dir;

 FILE *fp;

 char filename[64];

 char cmdline[18];

 size_t v1;

 size_t v2;

 char dest[18];

 char base[64];

 strcpy(dest, a1);

 v1 = strlen(dest);

 qsort(dest, v1, 1, cmp_char);

 struct dirent *entry;

 dir = opendir("/proc");

 while ((entry = readdir(dir)) != NULL)

 {

  id = atoi(entry->d_name);

  if (id)

  {

   sprintf(filename, "/proc/%d/cmdline", id);

   fp = fopen(filename, "r");

   if (fp)

   {

    fgets(cmdline, sizeof(cmdline), fp);

    fclose(fp);

    v2 = strlen(cmdline);

    qsort(cmdline, v2, 1, cmp_char);

    if (!strcmp(dest, cmdline))

    {

     return id;

    }

   }

  }

 }

 closedir(dir);

 puts("获取PID失败");

 return 0;

}

求解决办法

我建议可以使用系统API来获取进程的PID,然后根据PID来获取进程的名称。

下面是一个获取进程和进程名的程序代码,自己可以灵活运用在自己的代码中,在C语言中也可以代用脚本程序,充分结合让你的应用程序更加强壮。
https://blog.csdn.net/weixin_39549312/article/details/117174078