/* * printowner - print the name of the owner of a file or directory * * public domain, written by phoebos in 2022 */ #include #include #include #include #include int main(int argc, char **argv) { struct stat sb; struct passwd *pw; if (argc != 2) { fprintf(stderr, "usage: %s file\n", argv[0]); return 1; } if (stat(argv[1], &sb) != 0) { perror(argv[1]); return 1; } errno = 0; pw = getpwuid(sb.st_uid); if (pw == NULL) { if (errno != 0) perror("getpwuid"); else fprintf(stderr, "%s: user not found\n", argv[0]); return 1; } printf("%s\n", pw->pw_name); return 0; }