static void parse_cmd_line(int argc, char *argv[])
{
- int i;
+ int c;
- for (i = 1; i < argc; i++) {
- char *parm = argv[i];
-
- if (parm[0] != '-')
- break;
-
- parm++;
- switch (*parm) {
+ while ((c = getopt(argc, argv, "s:b:t:r:R:o:f:lw")) != EOF) {
+ switch (c) {
case 's':
- parm++;
- def_thread.sequential = !!atoi(parm);
+ def_thread.sequential = !!atoi(optarg);
break;
case 'b':
- parm++;
- def_thread.bs = atoi(parm);
+ def_thread.bs = atoi(optarg);
def_thread.bs <<= 10;
if (!def_thread.bs) {
printf("bad block size\n");
}
break;
case 't':
- parm++;
- def_thread.timeout = atoi(parm);
+ def_thread.timeout = atoi(optarg);
break;
case 'r':
- parm++;
- repeatable = !!atoi(parm);
+ repeatable = !!atoi(optarg);
break;
case 'R':
- parm++;
- rate_quit = !!atoi(parm);
+ rate_quit = !!atoi(optarg);
break;
case 'o':
- parm++;
- def_thread.odirect = !!atoi(parm);
+ def_thread.odirect = !!atoi(optarg);
break;
case 'f':
- if (i + 1 >= argc) {
- printf("-f needs file as arg\n");
- break;
- }
- ini_file = strdup(argv[i+1]);
- i++;
+ ini_file = strdup(optarg);
break;
case 'l':
write_lat_log = 1;
case 'w':
write_bw_log = 1;
break;
- default:
- printf("bad option %s\n", argv[i]);
- break;
}
}
}