|
@@ -536,3 +536,39 @@ void mem_bswap_64(void *src, int byte_size)
|
|
|
++m;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+bool find_process(const char *name)
|
|
|
+{
|
|
|
+ size_t len = strlen(name);
|
|
|
+ DIR *dir;
|
|
|
+ struct dirent *d;
|
|
|
+ int ret = -1;
|
|
|
+
|
|
|
+ dir = opendir(procfs__mountpoint());
|
|
|
+ if (!dir)
|
|
|
+ return -1;
|
|
|
+
|
|
|
+ /* Walk through the directory. */
|
|
|
+ while (ret && (d = readdir(dir)) != NULL) {
|
|
|
+ char path[PATH_MAX];
|
|
|
+ char *data;
|
|
|
+ size_t size;
|
|
|
+
|
|
|
+ if ((d->d_type != DT_DIR) ||
|
|
|
+ !strcmp(".", d->d_name) ||
|
|
|
+ !strcmp("..", d->d_name))
|
|
|
+ continue;
|
|
|
+
|
|
|
+ scnprintf(path, sizeof(path), "%s/%s/comm",
|
|
|
+ procfs__mountpoint(), d->d_name);
|
|
|
+
|
|
|
+ if (filename__read_str(path, &data, &size))
|
|
|
+ continue;
|
|
|
+
|
|
|
+ ret = strncmp(name, data, len);
|
|
|
+ free(data);
|
|
|
+ }
|
|
|
+
|
|
|
+ closedir(dir);
|
|
|
+ return ret ? false : true;
|
|
|
+}
|