#include #include #include #define VERSION "0.0.1" int main(int argc, char *argv[]) { int opt; int option_index = 0; static struct option long_opts[] = { {"help", no_argument, 0, 'h'}, {"file", required_argument, 0, 'f'}, {"output", required_argument, 0, 'o'}, {"version", no_argument, 0, 'v'}, {0, 0, 0, 0}, }; int has_file = 0; char a[128]; while ((opt = getopt_long(argc, argv, "hvf:o:", long_opts, &option_index)) != -1) { switch (opt) { case 'h': puts("Help"); break; case 'f': printf("File: %s\n", optarg); strncpy(a, optarg, 127); has_file = 1; break; case 'o': printf("Output: %s\n", optarg); break; case 'v': printf("Version: v%s\n", VERSION); break; default: return 1; } } if (has_file) printf("Using file: %s\n", a); return 0; }