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 yolov8边框坐标
  • ¥15 matlab中使用gurobi时报错
  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真