我正在解析传递给程序的参数。我想:
不做任何特别的事情
flag
作为参数传递,则将-k
设置为1
如果有任何参数不同于ignore()
-k
函数
醇>
下面的代码是否正确执行? 是否可以符合标准和良好做法指南?
int flag = FALSE;
if (argc == 2 && strcmp(argv[1], "-k") == 0)
flag = TRUE;
else if (argc >= 2)
ignore();
答案 0 :(得分:2)
以下程序显示了如何使用getopt:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define TRUE 1
#define FALSE 0
void ignore() {
printf("Ignore\n");
}
int main(int argc, char **argv) {
if(argc <= 1) {
printf("Do nothing\n");
return 0;
} else if(argc > 2) {
ignore();
} else {
int c, flag;
flag = FALSE;
while((c = getopt (argc, argv, ":k")) != -1) {
switch(c) {
case 'k':
flag = TRUE;
break;
default:
ignore();
break;
}
}
printf("Flag = %d\n",flag);
return 0;
}
}