#include #include #include // change permissions of the specified files int main(int argc, char *argv[]) { if (argc < 2) { fprintf(stderr, "Usage: %s \n", argv[0]); return 1; } char *end; // first argument is mode in octal mode_t mode = strtol(argv[1], &end, 8); // check first argument was a valid octal number if (argv[1][0] == '\0' || end[0] != '\0') { fprintf(stderr, "%s: invalid mode: %s\n", argv[0], argv[1]); return 1; } for (int arg = 2; arg < argc; arg++) { if (chmod(argv[arg], mode) != 0) { perror(argv[arg]); // prints why the chmod failed return 1; } } return 0; }