【发布时间】:2019-05-03 19:24:13
【问题描述】:
我正在尝试使用 POSIX getopt 函数并遇到了一些问题。我想通过命令行参数为应用程序提供一种模式(读取或写入)。所以我尝试做这样的事情:
enum mode{
read,
write
};
enum mode mode;
int opt;
while((opt = getopt("rw")) != -1){
switch(opt){
case 'w':
mode = write;
break;
case 'r':
mode = read;
break;
default:
fprintf(stderr, "Usage: %s [-r-w]\n", argv[0]");
exit(1);
}
}
问题在于它的工作方式现在可以同时传递-r 和-w 选项,这是无意义的。我希望选择这两种模式中的唯一一种。
这样做的“惯用”方式是什么?
【问题讨论】:
-
在您的情况下,1)验证:选择“无模式”是否有问题? 2) 第二次选择相同的模式有问题吗?
-
@chux 1) 是的,我希望用户只选择一种模式。
标签: c command-line-arguments unistd.h