-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