m0_65237812 2023-01-19 11:02 采纳率: 66.7%
浏览 69
已结题

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

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

旧代码:

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;

}

求解决办法

  • 写回答

2条回答 默认 最新

  • heart_6662 2023-01-19 12:32
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月29日
  • 已采纳回答 1月21日
  • 修改了问题 1月19日
  • 赞助了问题酬金15元 1月19日
  • 展开全部

悬赏问题

  • ¥15 关于大棚监测的pcb板设计
  • ¥20 sim800c模块 at指令及平台
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计