int gen_msg_file(const char *path) { int fd = 0; fd = open(path, O_CREAT | O_RDONLY, S_IRWXU | S_IRWXU | S_IRGRP); if (fd > 0) { fsync(fd); close(fd); return 0; } else { opt_error("errno:%d %s %s\n", errno, strerror(errno), __func__); return fd; } return 0; }
static void opt_parse(int argc, char **argv) { int i; /* Scan argument list. */ for (i = 1; i < argc; i++) { if (strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0) { printf(opt_usage, argv[0]); exit(EXIT_SUCCESS); } if (strcmp(argv[i], "-v") == 0 || strcmp(argv[i], "--version") == 0) { printf("%s\n", VERSION); exit(EXIT_SUCCESS); } if (strcmp(argv[i], "-d") == 0 || strcmp(argv[i], "--data") == 0) { if (i + 1 == argc) { opt_error(argv[i]); exit(EXIT_FAILURE); } opt_data = argv[++i]; continue; } if (strcmp(argv[i], "-r") == 0 || strcmp(argv[i], "--replay") == 0) { if (i + 1 == argc) { opt_error(argv[i]); exit(EXIT_FAILURE); } opt_replay = argv[++i]; continue; } if (strcmp(argv[i], "-l") == 0 || strcmp(argv[i], "--level") == 0) { if (i + 1 == argc) { opt_error(argv[i]); exit(EXIT_FAILURE); } opt_level = argv[++i]; continue; } /* Perform magic on a single unrecognized argument. */ if (argc == 2) { size_t len = strlen(argv[i]); int level = 0; if (len > 4) { char *ext = argv[i] + len - 4; if (strcmp(ext, ".map") == 0) strncpy(ext, ".sol", 4); if (strcmp(ext, ".sol") == 0) level = 1; } if (level) opt_level = argv[i]; else opt_replay = argv[i]; break; } } }