int APIENTRY WinMain(HINSTANCE x, HINSTANCE y, LPSTR z, int w) { int argc, n; char *arg, *p, **argv; Rune *warg; if(0 && win_hasunicode()){ warg = GetCommandLineW(); n = (wstrlen(warg)+1)*UTFmax; arg = malloc(n); wstrtoutf(arg, warg, n); }else arg = GetCommandLineA(); /* conservative guess at the number of args */ for(argc=4,p=arg; *p; p++) if(*p == ' ' || *p == '\t') argc++; argv = malloc(argc*sizeof(char*)); argc = args(argv, argc, arg); mymain(argc, argv); ExitThread(0); return 0; }
void mystart() { uint64_t bp = 0; asm volatile("\n\tmov %%rbp, %0\n":"=m"(bp)); environ = (char**)(bp + 24 + 8 * *(int*)(bp + 8)); exit(mymain(*((int*)(bp+8)), (char**)(bp+16))); }
int _tmain(int argc, _TCHAR* argv[]) { #if TESTING return bandit::run(argc, nullptr); #else return mymain(); #endif }
int main(void) { char *argv[3]; argv[0]=""; argv[1]="10"; /* n */ argv[2]="8"; /* base */ mymain(3, argv); return 0; }
int main() { int i; for(i=0; i<10; i++) { mymain(); } return 0; }
int main() { start(); mymain(); finish(); return 0; }
int main(void) { InitKernel();//Initialize all kernel data structures USERMODE; //Switch to user mode mymain(); //Now call what you would normally call main() return 0; }
void ResetISR(void) { unsigned long *pulSrc, *pulDest; pulSrc = &_etext; for (pulDest = &_data; pulDest < &_edata;) *pulDest++ = *pulSrc++; for (pulDest = &_bss; pulDest < &_ebss;) *pulDest++ = 0; void mymain(void); mymain(); }
int main(int argc, const char* argv[]) { int AVERAGE, i, j; double data[255][2]; int dataptr = 0; FILE* fp = fopen("C://Users//LENOVO//Desktop//result.txt", "w"); if (fp == NULL) { printf("Cannot open file!\n"); return; } srand((unsigned)time(NULL)); for (i = 0; i <= 254; i++) { for (j = 0; j <= 1; j++) { data[i][j] = 0; } } for (i = 1; i <= OVERALL; i++) { dataptr = 0; for (AVERAGE = 3; AVERAGE <= 8; AVERAGE++) { max1 = 0; max2 = 0; mymain(AVERAGE); data[dataptr][0] += max1; data[dataptr][1] += max2; dataptr++; printf("Now %d/%d, overall %d/%d...\n", dataptr, 6, i, OVERALL); } } for (i = 0; i < dataptr; i++) { fprintf(fp, "%d\t", i + 3); for (j = 0; j <= 1; j++) { data[i][j] /= OVERALL; fprintf(fp, "%g\t", data[i][j]); } fprintf(fp, "\n"); } fclose(fp); printf("Done!\n"); system("pause"); return 0; }
int _tmain(int argc, _TCHAR* argv[]) { string infile; try { mymain(argc, argv); } catch (std::runtime_error e) { output << "Error: " << e.what(); } output << endl << "End." ; return 0; }
int main(int argc, char **argv) { try { return mymain(argc, argv); } catch (CExpc e) { fprintf(stderr, "exception occurred: %s!\n", e.m_strCause.c_str()); return 1; } catch (...) { fprintf(stderr, "some exception occurred!\n"); return 1; } }
int main(int argc, const char* argv[]) { FILE* fp = fopen("C://Users//LENOVO//Desktop//result_average_degree_6.txt", "w"); int i; double data[LOOP_NUM][2], sum1=0, sum2=0, average1, average2; struct net net; if (fp==NULL) { printf("Cannot open file!\n"); return; } srand((unsigned)time(NULL)); for (i=0; i<LOOP_NUM; i++) { max1 = 0; max2 = 0; mymain(); data[i][0] = max1; data[i][1] = max2; printf("Simulation %u\n", i+1); printf("Maximum percentage of I for disease 1 is: %g\n", max1); printf("Maximum percentage of I for disease 2 is: %g\n", max2); } for (i=0; i<LOOP_NUM; i++) { fprintf(fp, "%u\t%g\t%g\n", i+1, data[i][0], data[i][1]); sum1 += data[i][0]; sum2 += data[i][1]; } average1 = sum1 / 30; average2 = sum2 / 30; fprintf(fp, "degree: %u\t%g\t%g\t", AVERAGE, average1, average2); fclose(fp); printf("Done!\n"); system("pause"); return 0; }
int main(int ac, char * av[]) try { try { try { cout << "Usage: same [SizeKb]\n"; ull sz = SZMAX; if ( ac > 1 ) sz = std::atoi(av[1]) * 1000ull; mymain(sz); } catch (...) { cout << "Current dir: [" << os::FileSys::cwd().str() << "]\n"; throw; } } catch (int e) { throw "[" + tos(e) + "]"; } catch (const char * e) { throw string(e); } } catch (string e) { cout << "Error: " << e << "\n"; return 1; } catch (std::exception & e) { cout << "Error (C++ exception) : " << e.what() << '\n'; return 2; } catch (...) { cout << "Error: unknown exception\n"; return 1; }
int main(int argc, char **argv) { const char *progname = "mv"; struct arg_str *backupc = arg_str0(NULL, "backup", "[CONTROL]", "make a backup of each existing destination file"); struct arg_lit *backup = arg_lit0("b", NULL, "like --backup but does not accept an argument"); struct arg_lit *force = arg_lit0("f", "force", "do not prompt before overwriting"); struct arg_rem *force1 = arg_rem (NULL, " equivalent to --reply=yes"); struct arg_lit *interact = arg_lit0("i", "interactive", "Prompt before overwriting"); struct arg_rem *interact1= arg_rem (NULL, " equivalent to --reply=yes"); struct arg_str *reply = arg_str0(NULL,"reply", "{yes,no,query}", "specify how to handle the prompt about an"); struct arg_rem *reply1 = arg_rem (NULL, " existing destination file"); struct arg_lit *strpslsh = arg_lit0(NULL,"strip-trailing-slashes", "remove any trailing slashes from each SOURCE argument"); struct arg_str *suffix = arg_str0("S", "suffix", "SUFFIX", "override the usual backup suffix"); struct arg_str *targetd = arg_str0(NULL,"target-directory", "DIRECTORY", "move all SOURCE arguments into DIRECTORY"); struct arg_lit *update = arg_lit0("u", "update", "copy only when the SOURCE file is newer"); struct arg_rem *update1 = arg_rem (NULL, " than the destination file or when the"); struct arg_rem *update2 = arg_rem (NULL, " destination file is missing"); struct arg_lit *verbose = arg_lit0("v", "verbose", "explain what is being done"); struct arg_lit *help = arg_lit0(NULL,"help", "display this help and exit"); struct arg_lit *version = arg_lit0(NULL,"version", "display version information and exit"); struct arg_file *files = arg_filen(NULL, NULL, "SOURCE", 1, argc+2, NULL); struct arg_rem *dest = arg_rem ("DEST|DIRECTORY", NULL); struct arg_end *end = arg_end(20); void* argtable[] = {backupc,backup,force,force1,interact,interact1,reply,reply1,strpslsh,suffix,targetd,update,update1,update2,verbose,help,version,files,dest,end}; int exitcode=0; int nerrors; /* verify the argtable[] entries were allocated sucessfully */ if (arg_nullcheck(argtable) != 0) { /* NULL entries were detected, some allocations must have failed */ printf("%s: insufficient memory\n",progname); exitcode=1; goto exit; } /* Set default argument values prior to parsing */ backupc->sval[0] = "existing"; /* --backup={none,off,numbered,t,existing,nil,simple,never} */ suffix->sval[0] = "~"; /* --suffix=~ */ reply->sval[0] = "query"; /* --reply={yes,no,query} */ targetd->sval[0] = NULL; /* Parse the command line as defined by argtable[] */ nerrors = arg_parse(argc,argv,argtable); /* special case: '--help' takes precedence over error reporting */ if (help->count > 0) { printf("Usage: %s", progname); arg_print_syntax(stdout,argtable,"\n"); printf("Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.\n\n"); arg_print_glossary(stdout,argtable," %-30s %s\n"); printf("\nThe backup suffix is \"~\", unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control method may be selected via the --backup option or through\n" "the VERSION_CONTROL environment variable. Here are the values:\n\n" " none, off never make backups (even if --backup is given)\n" " numbered, t make numbered backups\n" " existing, nil numbered if numbered backups exist, simple otherwise\n" " simple, never always make simple backups\n\n" "Report bugs to <foo@bar>.\n"); exitcode=0; goto exit; } /* special case: '--version' takes precedence error reporting */ if (version->count > 0) { printf("'%s' example program for the \"argtable\" command line argument parser.\n",progname); printf("September 2003, Stewart Heitmann\n"); exitcode=0; goto exit; } /* If the parser returned any errors then display them and exit */ if (nerrors > 0) { /* Display the error details contained in the arg_end struct.*/ arg_print_errors(stdout,end,progname); printf("Try '%s --help' for more information.\n",progname); exitcode=1; goto exit; } /* Command line parsing is complete, do the main processing */ exitcode = mymain(backupc->sval[0], backup->count, force->count, interact->count, reply->sval[0], strpslsh->count, suffix->sval[0], targetd->sval[0], update->count, verbose->count, files->filename, files->count); exit: /* deallocate each non-null entry in argtable[] */ arg_freetable(argtable,sizeof(argtable)/sizeof(argtable[0])); return exitcode; }
int main(int argc, char **argv) { struct arg_lit *list = arg_lit0("lL",NULL, "list files"); struct arg_lit *recurse = arg_lit0("R",NULL, "recurse through subdirectories"); struct arg_int *repeat = arg_int0("k","scalar",NULL, "define scalar value k (default is 3)"); struct arg_str *defines = arg_strn("D","define","MACRO",0,argc+2, "macro definitions"); struct arg_file *outfile = arg_file0("o",NULL,"<output>", "output file (default is \"-\")"); struct arg_lit *verbose = arg_lit0("v","verbose,debug", "verbose messages"); struct arg_lit *help = arg_lit0(NULL,"help", "print this help and exit"); struct arg_lit *version = arg_lit0(NULL,"version", "print version information and exit"); struct arg_file *infiles = arg_filen(NULL,NULL,NULL,1,argc+2, "input file(s)"); struct arg_end *end = arg_end(20); void* argtable[] = {list,recurse,repeat,defines,outfile,verbose,help,version,infiles,end}; const char* progname = "myprog"; int nerrors; int exitcode=0; /* verify the argtable[] entries were allocated sucessfully */ if (arg_nullcheck(argtable) != 0) { /* NULL entries were detected, some allocations must have failed */ printf("%s: insufficient memory\n",progname); exitcode=1; goto exit; } /* set any command line default values prior to parsing */ repeat->ival[0]=3; outfile->filename[0]="-"; /* Parse the command line as defined by argtable[] */ nerrors = arg_parse(argc,argv,argtable); /* special case: '--help' takes precedence over error reporting */ if (help->count > 0) { printf("Usage: %s", progname); arg_print_syntax(stdout,argtable,"\n"); printf("This program demonstrates the use of the argtable2 library\n"); printf("for parsing command line arguments.\n"); arg_print_glossary(stdout,argtable," %-25s %s\n"); exitcode=0; goto exit; } /* special case: '--version' takes precedence error reporting */ if (version->count > 0) { printf("'%s' example program for the \"argtable\" command line argument parser.\n",progname); printf("September 2003, Stewart Heitmann\n"); exitcode=0; goto exit; } /* If the parser returned any errors then display them and exit */ if (nerrors > 0) { /* Display the error details contained in the arg_end struct.*/ arg_print_errors(stdout,end,progname); printf("Try '%s --help' for more information.\n",progname); exitcode=1; goto exit; } /* special case: uname with no command line options induces brief help */ if (argc==1) { printf("Try '%s --help' for more information.\n",progname); exitcode=0; goto exit; } /* normal case: take the command line options at face value */ exitcode = mymain(list->count, recurse->count, repeat->ival[0], defines->sval, defines->count, outfile->filename[0], verbose->count, infiles->filename, infiles->count); exit: /* deallocate each non-null entry in argtable[] */ arg_freetable(argtable,sizeof(argtable)/sizeof(argtable[0])); return exitcode; }
int main(int argc, char **argv) { const char* progname = "uname"; struct arg_lit *all = arg_lit0("a", "all", "print all information, in the following order:"); struct arg_lit *kname = arg_lit0("s", "kernel-name", "print the kernel name"); struct arg_lit *nname = arg_lit0("n", "nodename", "print the node name"); struct arg_lit *krel = arg_lit0("r", "kernel-release", "print the kernel release"); struct arg_lit *kver = arg_lit0("v", "kernel-version", "print the kernel version"); struct arg_lit *mach = arg_lit0("m", "machine", "print the machine hardware name"); struct arg_lit *proc = arg_lit0("p", "processor", "print the processor type"); struct arg_lit *hard = arg_lit0("i", "hardware-platform","print the hardware platform"); struct arg_lit *opsys = arg_lit0("o", "operating-system", "print the operating system"); struct arg_lit *help = arg_lit0(NULL,"help", "print this help and exit"); struct arg_lit *vers = arg_lit0(NULL,"version", "print version information and exit"); struct arg_end *end = arg_end(20); void* argtable[] = {all,kname,nname,krel,kver,mach,proc,hard,opsys,help,vers,end}; int nerrors; int exitcode=0; /* verify the argtable[] entries were allocated sucessfully */ if (arg_nullcheck(argtable) != 0) { /* NULL entries were detected, some allocations must have failed */ printf("%s: insufficient memory\n",progname); exitcode=1; goto exit; } /* Parse the command line as defined by argtable[] */ nerrors = arg_parse(argc,argv,argtable); /* special case: '--help' takes precedence over error reporting */ if (help->count > 0) { printf("Usage: %s", progname); arg_print_syntax(stdout,argtable,"\n"); printf("Print certain system information. With no options, same as -s.\n\n"); arg_print_glossary(stdout,argtable," %-25s %s\n"); printf("\nReport bugs to <foo@bar>.\n"); exitcode=0; goto exit; } /* special case: '--version' takes precedence error reporting */ if (vers->count > 0) { printf("'%s' example program for the \"argtable\" command line argument parser.\n",progname); printf("September 2003, Stewart Heitmann\n"); exitcode=0; goto exit; } /* If the parser returned any errors then display them and exit */ if (nerrors > 0) { /* Display the error details contained in the arg_end struct.*/ arg_print_errors(stdout,end,progname); printf("Try '%s --help' for more information.\n",progname); exitcode=1; goto exit; } /* special case: uname with no command line options is equivalent to "uname -s" */ if (argc==1) { exitcode = mymain(0,1,0,0,0,0,0,0); goto exit; } /* special case: "uname -a" is equivalent to "uname -snrvmpi" */ if (all->count>0) { exitcode = mymain(1,1,1,1,1,1,1,1); goto exit; } /* normal case: take the command line options at face value */ exitcode = mymain(kname->count, nname->count, krel->count, kver->count, mach->count, proc->count, hard->count, opsys->count); exit: /* deallocate each non-null entry in argtable[] */ arg_freetable(argtable,sizeof(argtable)/sizeof(argtable[0])); return exitcode; }
TEST_F(test_colfill, run) { int argc = 2; char* argv[] = { (char*)"colfill", (char*)"-nohess" }; mymain(argc, argv); }
int main(int argc, char **argv) { const char* progname = "rm"; struct arg_lit *dir = arg_lit0("d", "directory", "unlink file(s), even if it is a non-empty directory"); struct arg_rem *dir2 = arg_rem( NULL, "(super-user only)"); struct arg_lit *force = arg_lit0("f", "force", "ignore nonexistant files, never prompt"); struct arg_lit *inter = arg_lit0("i", "interactive", "prompt before any removal"); struct arg_lit *recur = arg_lit0("rR","recursive", "remove the contents of directories recursively"); struct arg_lit *verb = arg_lit0("v", "verbose", "explain what is being done"); struct arg_lit *help = arg_lit0(NULL,"help", "print this help and exit"); struct arg_lit *vers = arg_lit0(NULL,"version", "print version information and exit"); struct arg_file *files = arg_filen(NULL,NULL,NULL,1,argc+2,NULL); struct arg_end *end = arg_end(20); void* argtable[] = {dir,dir2,force,inter,recur,verb,help,vers,files,end}; int exitcode=0; int nerrors; /* verify the argtable[] entries were allocated sucessfully */ if (arg_nullcheck(argtable) != 0) { /* NULL entries were detected, some allocations must have failed */ printf("%s: insufficient memory\n",progname); exitcode=1; goto exit; } /* Parse the command line as defined by argtable[] */ nerrors = arg_parse(argc,argv,argtable); /* special case: '--help' takes precedence over error reporting */ if (help->count > 0) { printf("Usage: %s", progname); arg_print_syntax(stdout,argtable,"\n"); printf("Remove (unlink) the specified file(s).\n\n"); arg_print_glossary(stdout,argtable," %-20s %s\n"); printf("\nReport bugs to <no-one> as this is just an example program.\n"); exitcode=0; goto exit; } /* special case: '--version' takes precedence error reporting */ if (vers->count > 0) { printf("'%s' example program for the \"argtable\" command line argument parser.\n",progname); printf("September 2003, Stewart Heitmann\n"); exitcode=0; goto exit; } /* If the parser returned any errors then display them and exit */ if (nerrors > 0) { /* Display the error details contained in the arg_end struct.*/ arg_print_errors(stdout,end,progname); printf("Try '%s --help' for more information.\n",progname); exitcode=1; goto exit; } /* command line options are all ok, now perform the "rm" functionality */ mymain(dir->count, force->count, inter->count, recur->count, verb->count, files->filename, files->count); exit: /* deallocate each non-null entry in argtable[] */ arg_freetable(argtable,sizeof(argtable)/sizeof(argtable[0])); return exitcode; }
int main( int argc, char **argv ) { bcm_host_init(); return mymain(argc, argv); }
int main(int argc, char **argv) { /* The argtable[] entries define the command line options */ void *argtable[] = { a = arg_lit0("a", "all", "do not hide entries starting with ."), A = arg_lit0("A", "almost-all", "do not list implied . and .."), author = arg_lit0(NULL,"author", "print the author of each file"), b = arg_lit0("b", "escape", "print octal escapes for nongraphic characters"), blocksize = arg_int0(NULL,"block-size","SIZE", "use SIZE-byte blocks"), B = arg_lit0("B", "ignore-backups", "do not list implied entries ending with ~"), c = arg_lit0("c", NULL, "with -lt: sort by, and show, ctime (time of last"), arg_rem(NULL, " modification of file status information)"), arg_rem(NULL, " with -l: show ctime and sort by name"), arg_rem(NULL, " otherwise: sort by ctime"), C = arg_lit0("C", NULL, "list entries by columns"), color = arg_str0(NULL,"color","WHEN", "control whether color is used to distinguish file"), arg_rem(NULL, " types. WHEN may be `never', `always', or `auto'"), d = arg_lit0("d", "directory", "list directory entries instead of contents,"), arg_rem(NULL, " and do not dereference symbolic links"), D = arg_lit0("D", "dired", "generate output designed for Emacs' dired mode"), f = arg_lit0("f", NULL, "do not sort, enable -aU, disable -lst"), F = arg_lit0("F", "classify", "append indicator (one of */=@|) to entries"), format = arg_str0(NULL,"format","WORD", "across -x, commas -m, horizontal -x, long -l,"), arg_rem (NULL, " single-column -1, verbose -l, vertical -C"), fulltime = arg_lit0(NULL,"full-time", "like -l --time-style=full-iso"), g = arg_lit0("g", NULL, "like -l, but do not list owner"), G = arg_lit0("G", "no-group", "inhibit display of group information"), h = arg_lit0("h", "human-readable", "print sizes in human readable format (e.g., 1K 234M 2G)"), si = arg_lit0(NULL,"si", "likewise, but use powers of 1000 not 1024"), H = arg_lit0("H", "dereference-command-line","follow symbolic links listed on the command line"), deref = arg_lit0(NULL,"dereference-command-line-symlink-to-dir","follow each command line symbolic link"), arg_rem(NULL, " that points to a directory"), indic = arg_str0(NULL,"indicator-style","WORD","append indicator with style WORD to entry names:"), arg_rem (NULL, " none (default), classify (-F), file-type (-p)"), i = arg_lit0("i", "inode", "print index number of each file"), I = arg_str0("I", "ignore","PATTERN", "do not list implied entries matching shell PATTERN"), k = arg_lit0("k", NULL, "like --block-size=1K"), l = arg_lit0("l", NULL, "use a long listing format"), L = arg_lit0("L", "dereference", "when showing file information for a symbolic"), arg_rem (NULL, " link, show information for the file the link"), arg_rem (NULL, " references rather than for the link itself"), m = arg_lit0("m", NULL, "fill width with a comma separated list of entries"), n = arg_lit0("n", "numeric-uid-gid", "like -l, but list numeric UIDs and GIDs"), N = arg_lit0("N", "literal", "print raw entry names (don't treat e.g. control"), arg_rem (NULL, " characters specially)"), o = arg_lit0("o", NULL, "like -l, but do not list group information"), p = arg_lit0("p", "file-type", "append indicator (one of /=@|) to entries"), q = arg_lit0("q", "hide-control-chars", "print ? instead of non graphic characters"), shcont = arg_lit0(NULL,"show-control-chars", "show non graphic characters as-is (default"), arg_rem (NULL, "unless program is `ls' and output is a terminal)"), Q = arg_lit0("Q", "quote-name", "enclose entry names in double quotes"), Qstyle = arg_str0(NULL,"quoting-style","WORD","use quoting style WORD for entry names:"), arg_rem (NULL, " literal, locale, shell, shell-always, c, escape"), r = arg_lit0("r", "reverse", "reverse order while sorting"), R = arg_lit0("R", "recursive", "list subdirectories recursively"), s = arg_lit0("s", "size", "print size of each file, in blocks"), S = arg_lit0("S", NULL, "sort by file size"), sort = arg_str0(NULL,"sort","WORD", "extension -X, none -U, size -S, time -t, version -v,"), arg_rem (NULL, "status -c, time -t, atime -u, access -u, use -u"), Time = arg_str0(NULL,"time","WORD", "show time as WORD instead of modification time:"), arg_rem (NULL, " atime, access, use, ctime or status; use"), arg_rem (NULL, " specified time as sort key if --sort=time"), timesty = arg_str0(NULL, "time-style","STYLE", "show times using style STYLE:"), arg_rem (NULL, " full-iso, long-iso, iso, locale, +FORMAT"), arg_rem (NULL, "FORMAT is interpreted like `date'; if FORMAT is"), arg_rem (NULL, "FORMAT1<newline>FORMAT2, FORMAT1 applies to"), arg_rem (NULL, "non-recent files and FORMAT2 to recent files;"), arg_rem (NULL, "if STYLE is prefixed with `posix-', STYLE"), arg_rem (NULL, "takes effect only outside the POSIX locale"), t = arg_lit0("t", NULL, "sort by modification time"), T = arg_int0("T", "tabsize", "COLS", "assume tab stops at each COLS instead of 8"), u = arg_lit0("u", NULL, "with -lt: sort by, and show, access time"), arg_rem (NULL, " with -l: show access time and sort by name"), arg_rem (NULL, " otherwise: sort by access time"), U = arg_lit0("U", NULL, "do not sort; list entries in directory order"), v = arg_lit0("v", NULL, "sort by version"), w = arg_int0("w", "width", "COLS", "assume screen width instead of current value"), x = arg_lit0("x", NULL, "list entries by lines instead of by columns"), X = arg_lit0("X", NULL, "sort alphabetically by entry extension"), one = arg_lit0("1", NULL, "list one file per line"), help = arg_lit0(NULL,"help", "display this help and exit"), version = arg_lit0(NULL,"version", "display version information and exit"), files = arg_filen(NULL, NULL, "FILE", 0, argc+2, NULL), end = arg_end(20), }; const char *progname = "ls"; int exitcode=0; int nerrors; /* verify the argtable[] entries were allocated sucessfully */ if (arg_nullcheck(argtable) != 0) { /* NULL entries were detected, some allocations must have failed */ printf("%s: insufficient memory\n",progname); exitcode=1; goto exit; } /* allow optional argument values for --color */ /* and set the default value to "always" */ color->hdr.flag |= ARG_HASOPTVALUE; color->sval[0] = "always"; /* Parse the command line as defined by argtable[] */ nerrors = arg_parse(argc,argv,argtable); /* special case: '--help' takes precedence over error reporting */ if (help->count > 0) { printf("Usage: %s", progname); arg_print_syntax(stdout,argtable,"\n"); printf("List information about the FILE(s) (the current directory by default).\n"); printf("Sort entries alphabetically if none of -cftuSUX nor --sort.\n\n"); arg_print_glossary(stdout,argtable," %-25s %s\n"); printf("\nSIZE may be (or may be an integer optionally followed by) one of following:\n" "kB 1000, K 1024, MB 1,000,000, M 1,048,576, and so on for G, T, P, E, Z, Y.\n\n" "By default, color is not used to distinguish types of files. That is\n" "equivalent to using --color=none. Using the --color option without the\n" "optional WHEN argument is equivalent to using --color=always. With\n" "--color=auto, color codes are output only if standard output is connected\n" "to a terminal (tty).\n\n" "Report bugs to <foo@bar>.\n"); exitcode=0; goto exit; } /* special case: '--version' takes precedence error reporting */ if (version->count > 0) { printf("'%s' example program for the \"argtable\" command line argument parser.\n",progname); printf("September 2003, Stewart Heitmann\n"); exitcode=0; goto exit; } /* If the parser returned any errors then display them and exit */ if (nerrors > 0) { /* Display the error details contained in the arg_end struct.*/ arg_print_errors(stdout,end,progname); printf("Try '%s --help' for more information.\n",progname); exitcode=1; goto exit; } /* Command line parsing is complete, do the main processing */ exitcode = mymain(); exit: /* deallocate each non-null entry in argtable[] */ arg_freetable(argtable,sizeof(argtable)/sizeof(argtable[0])); return exitcode; }
int main() { return mymain (); }
int main(int argc, char **argv) { struct arg_int *serverport = arg_int0("pP","port","","serverport, default: 1337"); struct arg_str *serialport = arg_str0("sS", "serial", "", "serial port, default /dev/ttyS0"); struct arg_int *baud = arg_int0("bB", "baud","","baudrate, default: 9600"); struct arg_str *client = arg_str0("cC","client","","only accept messages from this client"); struct arg_lit *help = arg_lit0("hH","help","print this help and exit"); struct arg_lit *version = arg_lit0(NULL,"version","print version information and exit"); struct arg_lit *debug = arg_lit0(NULL,"debug","print debug messages"); struct arg_lit *silent = arg_lit0(NULL,"silent","print no messages"); struct arg_end *end = arg_end(20); void* argtable[] = {serverport,serialport,baud,client,help,version,debug,silent,end}; int nerrors; int exitcode=0; /* verify the argtable[] entries were allocated sucessfully */ if (arg_nullcheck(argtable) != 0) { /* NULL entries were detected, some allocations must have failed */ printf("%s: insufficient memory\n",PROGNAME); exitcode=1; goto exit; } /* set any command line default values prior to parsing */ /* nothing */ /* Parse the command line as defined by argtable[] */ nerrors = arg_parse(argc,argv,argtable); /* special case: '--help' takes precedence over error reporting */ if (help->count > 0) { printf("usage: %s", PROGNAME); arg_print_syntax(stdout,argtable,"\n"); arg_print_glossary(stdout,argtable," %-25s %s\n"); exitcode=0; goto exit; } /* special case: '--version' takes precedence error reporting */ if (version->count > 0) { printf("'%s' version ",PROGNAME); printf("%s",VERSION); printf("\nGIT-REVISION: "); printf("%s",GITREV); printf("\n%s receives udp-packets and controls\n",PROGNAME); printf("the EIWOMISA controller over RS-232\n"); printf("%s",COPYRIGHT); printf("\n"); exitcode=0; goto exit; } /* If the parser returned any errors then display them and exit */ if (nerrors > 0) { /* Display the error details contained in the arg_end struct.*/ arg_print_errors(stdout,end,PROGNAME); printf("Try '%s --help' for more information.\n",PROGNAME); exitcode=1; goto exit; } /* special case: with no command line options induce brief help and use defaults */ if (argc==1) { printf("No command-line options present, using defaults.\n",PROGNAME); printf("Try '%s --help' for more information.\n",PROGNAME); } /* normal case: take the command line options at face value */ /* check if server port is set */ int i_serverport = -1; if(serverport->count>0) i_serverport = (int)serverport->ival[0]; /* check if serial port is set */ char* i_serialport = NULL; if(serialport->count>0) i_serialport = (char*)serialport->sval[0]; /* check if baudrate is set */ int i_baudrate = -1; if(baud->count>0) i_baudrate = (int)baud->ival[0]; /* check if client ip is set */ char* i_client = NULL; if(client->count>0) { i_client = (char *)client->sval[0]; } /* --debug enables debug messages */ if (debug->count > 0) { printf("debug messages enabled\n"); msglevel = 3; } /* --silent disables all (!) messages */ if (silent->count > 0) { msglevel = 0; } exitcode = mymain(i_serverport, i_serialport, i_baudrate, i_client); exit: /* deallocate each non-null entry in argtable[] */ arg_freetable(argtable,sizeof(argtable)/sizeof(argtable[0])); return exitcode; }
int main(int argc, char **argv) { printf("%d\n", mymain()); return 0; }