如何通過命令列,為程式傳入引數,可以使用函式getopt與getopt_long。
函式的宣告如下:
#include <unistd.h> int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg; extern int optind, opterr, optopt; #include <getopt.h> int getopt_long(int argc, char * const argv[], const char *optstring, const struct option *longopts, int *longindex); int getopt_long_only(int argc, char * const argv[], const char *optstring, const struct option *longopts, int *longindex);
函式getopt能夠輸入,類似“-r”, “-h”之類的短引數,如果需要輸入長引數,如–help”就用函式getopt_long。
更詳細的用法,建議man getopt。
但是我手上有個需求是,傳入多個引數,如下面命令來連續讀出16個暫存器的取值。
./mem_rdwr.out --rd 0x70006d00 16
看上去用getopt實現不了,還是自己手寫程式來解析吧