- int ret = 0;
-
- for (;;) {
- if (*arg >= argc
- || argv[*arg][0] != '-'
- || argv[*arg][0] == '\0'
- || argv[*arg][1] == '\0'
- || !strcmp(argv[*arg], "--"))
- break;
- switch (argv[*arg][1]) {
- case 'o': if (*arg + 1 >= argc) {
- printf("Missing -o trace name\n");
- ret = -EINVAL;
- break;
- }
- trace_path = argv[*arg + 1];
- (*arg) += 2;
+ int i, c;
+
+ while ((c = getopt(argc, argv, "ho:")) != -1) {
+ switch (c) {
+ case 'o':
+ trace_path = strdup(optarg);