Linux C根据进程特征名称确认进程是否存在

Linux C根据进程特征名称确认进程是否存在

不同系统可能存在一定差异,但主要思路是通过执行命令行指令ps命令查看进程信息进行判断。

如下代码:

int detectProcessByName(char * processName)
{
    FILE* fp = NULL;
    int count = 1;
    int BUFSZ = 100;
    char buf[BUFSZ];
    char command[150];

    if(snprintf(command,  150, "ps -C %s | grep %s", processName, processName) < 0)
        return -1;

    if((fp = popen(command,"r")) == NULL)
    {
        return -2;
    }
    if((fgets(buf, BUFSZ, fp))!= NULL)
    {
        pclose(fp);
        fp = NULL;
        if(NULL != strstr(buf, processName))
            return 0;
    }

    return -3;
}

int res = detectProcessByName("ky_d");
if(res <0)
{
  LOGE("not find ky_d.res:%d", res);
}
else {
  LOGD("find ky_d.");
}

版权声明:本文为weixin_39510813原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。