ARM平台下fopen打开文件出现段错误
最近发现一个问题,我在linux系统下用fopen打开文件,编译能成功打开,交叉编译移植到开发板上,以写方式打开文件出现段错误,我的程序很简单,只是用来测试。程序如下:
#include<stdio.h>
void main()
{
FILE *fp;
fp=fopen("filename","w+");
if(fp != NULL)
printf("open\n");
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;
}