Я пытаюсь использовать getotp для программы, которую мне нужно сделать для университета. Я использую Mac, и я думаю, что команда getopt на Mac и Linux не совпадают. В моем коде я хочу заполнить список файлов, если есть опция -f и если есть опция -t, на данный момент я просто хочу напечатать "chiffrement" (этот otpion позаботится о выборе, какойМетод шифрования Я хочу зашифровать файлы. Например: sha1, md5 ...) У меня проблема в том, что этот параметр равен только первому указанному параметру, который я выполнил. Я имею в виду, что если я выполню, выполнив ./myProg -f File1 File2 -t md5, моя переменная будет равна только f и никогда не будет t. Таким образом, я получаю список файлов, но не распечатываю "chiffrement"
У вас есть какое-нибудь решение?
мой код: '' 'int isf = 0;
while ((option = getopt(NbArg, Argu, "f:t:")) != -1){
printf("%c\n", option);
switch (option){
case 'f':
printf("blabla\n");
isf =1;
break;
case 't':
printf("chiffrement\n");
break;
default :
PrintError(Argu[0], "Options non valides");
}
}
if (isf == 1){
for (i = optind-1; i<NbArg; i++){
if (strcmp(Argu[i], "-t") == 0){
ListeFichiers[i-optind+1] = NULL;
break;
}
else{
printf("Argui: %s\n", Argu[i]);
ListeFichiers[i-optind+1] = Argu[i];
}
}
}
// -------------------------------> print la liste
for (i=0; i<(NbArg-2); i++){
if (ListeFichiers[i] == NULL){
break;
}
printf(" liste fichier: %s\n", ListeFichiers[i]);
}
'''