当前位置: 技术问答>linux和unix
ARM平台下fopen打开文件出现段错误
来源: 互联网 发布时间:2017-01-08
本文导语: 最近发现一个问题,我在linux系统下用fopen打开文件,编译能成功打开,交叉编译移植到开发板上,以写方式打开文件出现段错误,我的程序很简单,只是用来测试。程序如下: #include void main() { FILE *fp; ...
最近发现一个问题,我在linux系统下用fopen打开文件,编译能成功打开,交叉编译移植到开发板上,以写方式打开文件出现段错误,我的程序很简单,只是用来测试。程序如下:
#include
void main()
{
FILE *fp;
fp=fopen("filename","w+");
if(fp != NULL)
printf("openn");
fclose(fp);
}
在linux系统下,gcc编译以读和写的方式fopen打开都成功,但交叉编译后,以写方式打开文件,出现段错误,当我把fp=fopen("filename","w+");改为fp=fopen("filename","r");时,程序能成功打开
急求大家帮忙解决
#include
void main()
{
FILE *fp;
fp=fopen("filename","w+");
if(fp != NULL)
printf("openn");
fclose(fp);
}
在linux系统下,gcc编译以读和写的方式fopen打开都成功,但交叉编译后,以写方式打开文件,出现段错误,当我把fp=fopen("filename","w+");改为fp=fopen("filename","r");时,程序能成功打开
急求大家帮忙解决
|
代碼有一點小問題,如果文件不存在,fp==NULL,那麼在Linux上直接fclose(NULL)是會出現段錯誤的。
|
用perror看看原因。
if (fp == NULL) // 出错
{
perror("open error");
return -1;
}
if (fp == NULL) // 出错
{
perror("open error");
return -1;
}