Lines Matching defs:info

71 void print_type(char *type, struct pid_info_t* info)
76 strncat(info->path, type, sizeof(info->path));
77 if ((link_dest_size = readlink(info->path, link_dest, sizeof(link_dest)-1)) < 0) {
81 snprintf(link_dest, sizeof(link_dest), "%s (readlink: %s)", info->path, strerror(errno));
91 info->cmdline, info->pid, info->user, type,
95 info->path[info->parent_length] = '\0';
99 void print_maps(struct pid_info_t* info)
110 strncat(info->path, "maps", sizeof(info->path));
112 maps = fopen(info->path, "r");
123 info->cmdline, info->pid, info->user, "mem",
130 info->path[info->parent_length] = '\0';
134 void print_fds(struct pid_info_t* info)
137 strncat(info->path, fd_path, sizeof(info->path));
139 int previous_length = info->parent_length;
140 info->parent_length += strlen(fd_path);
142 DIR *dir = opendir(info->path);
145 snprintf(msg, sizeof(msg), "%s (opendir: %s)", info->path, strerror(errno));
147 info->cmdline, info->pid, info->user, "FDS",
157 print_type(de->d_name, info);
162 info->parent_length = previous_length;
163 info->path[info->parent_length] = '\0';
169 struct pid_info_t info;
173 info.pid = pid;
174 snprintf(info.path, sizeof(info.path), "/proc/%d/", pid);
175 info.parent_length = strlen(info.path);
178 if (!stat(info.path, &pidstat)) {
181 strlcpy(info.user, pw->pw_name, sizeof(info.user));
183 snprintf(info.user, USER_DISPLAY_MAX, "%d", (int)pidstat.st_uid);
186 strcpy(info.user, "???");
190 strncat(info.path, "cmdline", sizeof(info.path));
191 fd = open(info.path, O_RDONLY);
193 fprintf(stderr, "Couldn't read %s\n", info.path);
202 fprintf(stderr, "Error reading cmdline: %s: %s\n", info.path, strerror(errno));
209 strlcpy(info.cmdline, basename(cmdline), sizeof(info.cmdline));
212 print_type("cwd", &info);
213 print_type("exe", &info);
214 print_type("root", &info);
216 print_fds(&info);
217 print_maps(&info);