#include #include #include #include #include #include void usage(FILE *, char *); void main(int argc, char **argv) { int verbose=0; int ch; int fd; long mode=0666; char *end; if (argc<2) { usage(stdout, argv[0]); exit(EXIT_SUCCESS); } while ((ch=getopt(argc, argv, "vm:"))!=-1) { switch (ch) { case 'v': verbose++; break; case 'm': mode=strtol(optarg, &end, 8); if ((*end!='\0') || (mode<0) || (mode>07777)) { fprintf(stderr, "%s: invalid mode -- %s\n", argv[0], optarg); exit(EXIT_FAILURE); } umask(0); break; case '?': default: usage(stderr, argv[0]); exit(EXIT_FAILURE); } } if (optind>=argc) { fprintf(stderr, "%s: no files specified!\n", argv[0]); exit(EXIT_FAILURE); } for (;optind