chmod.c revision dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0
1dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#include <stdio.h> 2dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#include <stdlib.h> 3dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#include <string.h> 4dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#include <sys/types.h> 5dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#include <dirent.h> 6dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#include <errno.h> 7dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 8dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#include <unistd.h> 9dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#include <time.h> 10dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 11dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectint chmod_main(int argc, char **argv) 12dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project{ 13dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project int i; 14dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 15dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project if (argc < 3) { 16dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project fprintf(stderr, "Usage: chmod <MODE> <FILE>\n"); 17dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project return 10; 18dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project } 19dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 20dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project int mode = 0; 21dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project const char* s = argv[1]; 22dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project while (*s) { 23dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project if (*s >= '0' && *s <= '7') { 24dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project mode = (mode<<3) | (*s-'0'); 25dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project } 26dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project else { 27dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project fprintf(stderr, "Bad mode\n"); 28dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project return 10; 29dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project } 30dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project s++; 31dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project } 32dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project for (i = 2; i < argc; i++) { 33dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project if (chmod(argv[i], mode) < 0) { 34dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project fprintf(stderr, "Unable to chmod %s: %s\n", argv[i], strerror(errno)); 35dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project return 10; 36dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project } 37dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project } 38dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project return 0; 39dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project} 40dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 41