【发布时间】:2014-11-23 13:45:02
【问题描述】:
我正在编写一个程序代理,它将标准输出等重定向到文件中,用法:proxy [-i infile] [-o outfile] [-e errfile] cmd [options]。
所以我想强制 getopt 在它到达 cmd 时停止,因为它不应该解析选项。
我阅读了有关环境变量 POSIXLY_CORRECT 的信息,但我想让它独立于它。
所以我的问题是如何做到这一点。
到目前为止我的部分代码
while ((opt = getopt (argc, argv, "i:o:e:")) != -1)
switch (opt)
{
case 'i':
i = 1;
strcpy(input, optarg);
break;
case 'o':
o = 1;
strcpy(output, optarg);
break;
case 'e':
e = 1;
strcpy(error, optarg);
break;
default:
fprintf(stderr, "usage: proxy [-i infile] [-o outfile] [-e errfile] <cmd> [options]\n");
return -1;
}
当给定 cmd 选项时,这将一直进入默认情况:(
【问题讨论】: