#include <stdio.h>
#include <ctype.h>
#include <fcntl.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <dirent.h>
#define PROC_DIRECTORY "/proc/"
static bool processExist(const char* processName, int len)
{
DIR *d;
struct dirent *de;
int cmdfd;
int r;
char cmdline[1024];
d = opendir(PROC_DIRECTORY);
if(d == 0) return false;
while((de = readdir(d)) != 0){
if(isdigit(de->d_name[0])){
int pid = atoi(de->d_name);
sprintf(cmdline, "/proc/%d/cmdline", pid);
cmdfd = open(cmdline, O_RDONLY);
if (cmdfd == 0){
r = 0;
}
else{
r = read(cmdfd, cmdline, 1023);
close(cmdfd);
if(r < 0) r = 0;
}
cmdline[r] = 0;
if ((r > 0) && (strncmp(cmdline,processName,len) == 0))
{
closedir(d);
return true;
}
} //isdigit
}
closedir(d);
return false;
}
Android检测系统中是否存在某进程
最新推荐文章于 2023-04-17 11:21:58 发布