-2
Я продолжаю получать ошибку сегментации. Я выяснил, что это происходит между этими двумя линиями:C - Ошибка сегментации где-то
printf("%s - File exists!\n", file_name);
printf("inforloop");
Но я не уверен, почему ошибка сегментации сохраняется. Это весь код:
#include<stdio.h>
#include<unistd.h>
#include<string.h>
FILE *fp;
char err_message[128], file_name[128];
int main(int argc, char *argv[])
{
if(argc <= 2)
{
printf("ERROR : Usage %s <file name>\n", argv[0]);
return 1;
}
int i = 1;
for(i; i< argc; i++)
{
strcpy(file_name, argv[i]);
if ((access(file_name, F_OK)) != -1)
{
printf("begining of for loop\n");
printf("%s - File exists!\n", file_name);
printf("inforloop");
fclose(fp);
}
else
{
sprintf(err_message, "open %s", file_name);
perror(err_message);
}
}
return 0;
}
Результат:
1
begining of for loop
date.txt - File exists!
Segmentation fault (core dumped)
Вы не назначили 'fp'. – user2357112
Похоже, C. C++ - это другой язык. Не добавляйте несвязанные теги. – Olaf
Отладчик скажет вам, где именно произошла ошибка, и будет быстрее (в конечном счете), а затем использовать SO в качестве службы отладки - даже если вы застряли с необработанным GDB. – Clifford