C-分段错误
我总是遇到一个分割错误。我发现它发生在这两条线之间:C-分段错误,c,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], f
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;
}
您正在
fclose
ingfp
,您从未fopen
ed甚至初始化过它
输出在打印前<代码> iFoRoC< <代码>被切断,因为您的标准输出是行缓冲的,并且在代码> > C. > <代码>之后没有行提要。
您没有分配< C++ > FP>代码>。不要添加不相关的标记。调试器将准确地告诉您错误发生的位置,并且(从长远来看)将比使用SO作为调试服务更快——即使您仍然使用原始GDB。 1
begining of for loop
date.txt - File exists!
Segmentation fault (core dumped)