diff options
| author | Jake Mannens <jakem_5@hotmail.com> | 2020-03-25 13:21:37 +1100 |
|---|---|---|
| committer | Jake Mannens <jakem_5@hotmail.com> | 2020-03-25 13:21:37 +1100 |
| commit | ddb2cfd8a74670382e61bad0b567f3d30e9aea70 (patch) | |
| tree | f3208f7ff10a187442c26a48a0d68c5b134ef7db /src/chmod.c | |
Diffstat (limited to 'src/chmod.c')
| -rw-r--r-- | src/chmod.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/chmod.c b/src/chmod.c new file mode 100644 index 0000000..a16665f --- /dev/null +++ b/src/chmod.c @@ -0,0 +1,32 @@ +#include <errno.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <sys/stat.h> + +int main(int argc, char **argv) { + int ret; + char **f; + mode_t mode; + + if(argc < 2) { + printf("Usage: %s <mode> <files>\n", argv[0]); + return EXIT_FAILURE; + } + + ret = sscanf(argv[1], "%o", &mode); + if(ret < 1) { + fprintf(stderr, "Invalid mode: %s\n", argv[1]); + return EXIT_FAILURE; + } + + f = &argv[2]; + argc -= 2; + + while(argc--) { + ret = chmod(*f, mode); + if(ret < 0) + fprintf(stderr, "Error changing mode on file %s: %s\n", *f, strerror(errno)); + f++; + } +} |
