我有一个循环遍历proc文件系统中的目录的函数。然后这个函数 grep 一个进程名来找到它的 PID 并将这个 PID 返回给调用函数。
该功能似乎工作正常,但在打开某些目录(对应于进程)时在一两种情况下失败。这就是我正在做的事情。
dr = readdir(dp);
循环通过 dr
检查目录和进程名称的 dr 类型,
将进程名称与字符串进行比较。
Return PID in case of a match
dr = readdir(dp);
end loop
main() {
DIR *d;
struct dirent *e;
e=malloc(sizeof(struct dirent));
d=opendir("/proc");
while ((e = readdir(d)) != NULL) {
printf("%d %s\n", e->d_type, e->d_name);
}
closedir(d);
}