From ddb2cfd8a74670382e61bad0b567f3d30e9aea70 Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Wed, 25 Mar 2020 13:21:37 +1100 Subject: Initial commit --- src/chmod.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/chmod.c (limited to 'src/chmod.c') 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 +#include +#include +#include +#include + +int main(int argc, char **argv) { + int ret; + char **f; + mode_t mode; + + if(argc < 2) { + printf("Usage: %s \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++; + } +} -- cgit v1.3