/* * access /proc entry for current process */ #include #include #include #include #include #include #include #include void show_file(pid_t pid, char *simplename); int main(void) { pid_t pid = getpid(); show_file(pid, "cmdline"); show_file(pid, "environ"); show_file(pid, "limits"); show_file(pid, "status"); return 0; } void show_file(pid_t pid, char *simplename) { int namesz = snprintf(NULL, 0, "/proc/%d/%s", pid, simplename); char name[namesz+1]; snprintf(name, namesz+1, "/proc/%d/%s", pid, simplename); printf("filename '%s'\n", name); errno=0; int infile = open(name, O_RDONLY); if (infile == -1) { printf("open failed: %s\n",strerror(errno)); } else { char inchar; while (read(infile, &inchar, 1) > 0) { if (inchar == '\0') { putchar('\n'); } else { putchar(inchar); } } putchar('\n'); } }