chmod.cpp 463 B

123456789101112131415161718192021222324252627
  1. #include <unistd.h>
  2. #include <sys/stat.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. int main(int argc, char **argv)
  6. {
  7. if (argc != 3) {
  8. printf("usage: chmod <octal-mode> <path>\n");
  9. return 1;
  10. }
  11. unsigned mode;
  12. int rc = sscanf(argv[1], "%o", &mode);
  13. if (rc != 1) {
  14. perror("sscanf");
  15. return 1;
  16. }
  17. rc = chmod(argv[2], mode);
  18. if (rc < 0) {
  19. perror("chmod");
  20. return 1;
  21. }
  22. return 0;
  23. }