文章目录
- 代码
- 获取到参数转整型
代码
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#include <stdint.h>static uint8_t optstr[] = "?:i:o:v:h:";
static struct option long_options[] = {{"input", required_argument, 0, 'i'},{"output", required_argument, 0, 'o'},{"verbose", no_argument, 0, 'v'},{"help", no_argument, 0, 'h'},{"usage", optional_argument, 0, '?'},{0, 0, 0, 0}
};static void print_usage(const uint8_t *name) {printf("usage example:\n");printf("./main -i 666 -o 333\r\n");printf("./main --v\r\n");printf("./main --h\r\n");printf("./main ?\r\n");
}int main(int argc, char *argv[]) {int opt;while (1) {int option_index = 0;opt = getopt_long(argc, argv, optstr, long_options, &option_index);if (opt == -1) {break;}switch (opt) {case 'i':printf("Input file: %s\n", optarg);break;case 'o':printf("Output file: %s\n", optarg);break;case 'v':printf("demo for version log\n");break;case 'h':print_usage(argv[0]);break;case '?':default:print_usage(argv[0]);break;}}// ...return 0;
}
编译
gcc main.c
运行
./a.out
效果
liefyuan@ubuntu:~/liefyuan-app/argument$ ./a.out -i 10 -o 22
Input file: 10
Output file: 22
liefyuan@ubuntu:~/liefyuan-app/argument$ ./a.out --v
demo for version log
liefyuan@ubuntu:~/liefyuan-app/argument$ ./a.out --h
usage example:
./main -i 666 -o 333
./main --v
./main --h
./main ?
获取到参数转整型
int arg1;arg1 = atoi(optarg);