int main(int argc, char **argv){
// If the user does not have the right amount of arguments exit the program and display message
if(!(argc >= 2)){
printf("Usage: %s -l -c -w -L <filenames>");
exit(-1);
}
size_t iscFlag = 0;
size_t islFlag = 0;
size_t iswFlag = 0;
size_t isLFlag = 0;
FILE *src;
puts("Work work");
// For loop that checks for all the flags
int i;
for(i = 1; i < 5; i++){
if(strcmp(argv[i], "-c") == 0){
iscFlag = 1;
}else if(strcmp(argv[i], "-l") == 0){
islFlag = 1;
}else if(strcmp(argv[i], "-w") == 0){
iswFlag = 1;
}else if(strcmp(argv[i], "-L") == 0){
isLFlag = 1;
}
}
Я пытаюсь создать простой цикл, который проверяет флаги для воссоздания команды wc в терминале типа UNIX. Кто-нибудь знает, что происходит с циклом for? На нем возникает ошибка сегментации. Существует больше кода, но я просто размещаю его часть.C Сегментация Неисправность для цикла
Заранее спасибо.
OH Я идиот. Я думаю, что выяснил, в чем проблема - секунды после публикации. Я просто делаю ./wc -w имя файла, и поэтому цикл проверяет границы. –
Не забывайте аргументы printf: вы используете% s без аргумента. Следующий возможный segfault – ckruse