int main(int argc, char *argv[]) { bool quiet = false; char const * vserver; VserverTag tag; while (1) { int c = getopt_long(argc, argv, "ql", CMDLINE_OPTIONS, 0); if (c==-1) break; switch (c) { case 'h' : showHelp(1, argv[0], 0); case 'v' : showVersion(); case 'l' : showTags(); case 'q' : quiet = true; break; default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); WRITE_MSG(2, " --help' for more information.\n"); exit(1); break; } } if (optind+2>argc) { execQuery("-", tgSYSINFO, 0, 0); WRITE_MSG(2, "\nAssumed 'SYSINFO' as no other option given; try '--help' for more information.\n"); exit(0); } vserver = argv[optind]; tag = stringToTag(argv[optind+1]); if (tag==tgNONE) { WRITE_MSG(2, "Unknown tag; use '-l' to get list of valid tags\n"); exit(1); } if (quiet) { int fd = Eopen("/dev/null", O_WRONLY, 0644); Edup2(fd, 1); Eclose(fd); } return execQuery(vserver, tag, argc-(optind+2), argv+optind+2); }
void openMsgfile(/*@in@*//*@null@*/char const *filename) /*@globals msg_fd@*/ /*@modifies msg_fd@*/ { if (filename==0 || filename[0]=='\0') { msg_fd = 2; } else if (strcmp(filename, "/dev/null")==0) { msg_fd = -1; } else { int new_fd; new_fd = Eopen(filename, O_CREAT|O_WRONLY|O_APPEND, 0400); msg_fd = Edup2(new_fd, 2); assert(msg_fd==2); Eclose(new_fd); } }