int mkmount_cmd (int argc, char **argv) { char buf[MAXSIZE]; char prefix; char *dirname = NULL; char *volname = NULL; char *cell = NULL; int rwflag = 0; int helpflag = 0; int optind = 0; struct agetargs mkmargs[] = { {"dir", 0, aarg_string, NULL, "mount point directory name", "directory", aarg_mandatory}, {"vol", 0, aarg_string, NULL, "volume to mount", "volume", aarg_mandatory}, {"cell", 0, aarg_string, NULL, "cell of volume", "cell", aarg_optional_swless}, {"rw", 0, aarg_flag, NULL, "mount read-write", NULL}, {"help", 0, aarg_flag, NULL, NULL, NULL}, {NULL, 0, aarg_end, NULL}}, *arg; arg = mkmargs; arg->value = &dirname; arg++; arg->value = &volname; arg++; arg->value = &cell; arg++; arg->value = &rwflag; arg++; arg->value = &helpflag; arg++; if (agetarg (mkmargs, argc, argv, &optind, AARG_AFSSTYLE)) { aarg_printusage(mkmargs, "fs mkmount", "", AARG_AFSSTYLE); return 0; } argc -= optind; argv += optind; if (argc) { printf("unknown option %s\n", *argv); return 0; } if (rwflag) prefix = '%'; else prefix = '#'; if (cell) snprintf(buf, sizeof(buf), "%c%s:%s.", prefix, cell, volname); else snprintf(buf, sizeof(buf), "%c%s.", prefix, volname); if (symlink (buf, dirname) == -1) { perror ("fs"); return 0; } return 0; }
int main(int argc, char **argv) { int optind = 0; while(agetarg(args, 5, argc, argv, &optind)) printf("Bad arg: %s\n", argv[optind]); printf("flag1 = %d\n", flag1); printf("flag2 = %d\n", flag2); printf("foo_flag = %d\n", foo_flag); printf("bar_int = %d\n", bar_int); printf("baz_flag = %s\n", baz_string); aarg_printusage (args, 5, argv[0], "nothing here"); }
static void usage (void) { aarg_printusage (args, "bos stop", "", AARG_AFSSTYLE); }
static void usage (int exit_val) { aarg_printusage (args, NULL, "", AARG_GNUSTYLE); }
static void usage (void) { aarg_printusage (args, "bos getrestart", "", AARG_AFSSTYLE); }
static void usage(int exit_val) { aarg_printusage(args, NULL, "number of files", AARG_GNUSTYLE); exit(exit_val); }