如何在包管理器中处理多个命令行参数?我正在写一个软件包管理器,现在接受要安装的软件包让我非常头疼。例如,用户想要安装软件包x,y和z。现在我的代码会向一个函数发送3个不同的请求。我想一次性获得所有包名称。例如,用户想要安装软件包x,y和z,它将被处理,我的代码会向一个函数发送一个请求,声明它需要x,y和z,函数将立即开始工作。处理C命令行参数
这里是我当前的实现......
case 'S':
switch (argv[1][2]) {
case 'u':
id = 1;
alfred("system", "update", "", id);
break;
case 'r':
id = 1;
alfred("system", "reload", "", id);
break;
case 'i':
if (argc - 2 != 0) {
// Loop until packages are complete.
packages = 2; // Starting point of packages = argv[2][0]
srand(time(NULL)); // Seed for random number
id = rand(); // Generate random number for id
argc = argc - 2 + 1; // argc minus the number of packages and plus 1
/* This is a very inefficent loop! */
/* Must get all targets and feed it to alfred */
while (packages <= argc) {
alfred("system", "install", &argv[packages][0], id);
packages++;
}
} else {
printf("Unrecognized format. Execute alfred -h for more information.\n");
}
break;
default:
printf("Unrecognized format. Execute alfred -h for more information.\n");
break;
}
break;
谢谢!这对我有用! :) – 2013-05-15 14:31:07