0
我正在制作一个程序,它接受像--version,--download这样的命令行参数。命令行选项的不同顺序影响我的输出
当我这样做:
$program --version --download file
程序输出版本和下载文件。但是,当我这样做:
$program --download --version file
程序认为--version
是参数--download
。
我已经使用getopt_long()
函数来解析命令行参数。下面是我的代码片段:
while ((ch = getopt_long(argc, argv, "d:g:hv", longoptions, &optindex)) != -1)
{
switch(ch)
{
case 'd' :
if (optarg)
printf("Downloading %s...\n" , optarg);
iso(optarg);
break ;
case 'g' :
if (optarg)
printf("Downloading glug-mirror automation script for %s ...\n", optarg);
getscript(optarg);
break ;
case 'v' :
printf("glug version 1.0.0 (NIT Hamirpur)\n");
break ;
case 'h' :
usage(status);
break ;
default :
status = 2 ;
usage(status);
}
}
rm命令可以使用这样的: RM -rv目录 RM -r目录-v RM -vr目录 RM-RV目录 ,所以我想我的程序是这么多灵活.... –
'rm'通过将'directory'作为一个单独的参数来处理; **不是**与任何其他cmd行参数相关的值。用相同的细节更新答案。 – TheCodeArtist