如何在包管理器中處理多個命令行參數?我正在寫一個軟件包管理器,現在接受要安裝的軟件包讓我非常頭疼。例如,用戶想要安裝軟件包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