当前位置: 技术问答>linux和unix
ARM板上运行fopen函数出错
来源: 互联网 发布时间:2017-03-01
本文导语: 代码: char filename[20]="test.txt"; char buf[100]; FILE *fp; fp = fopen(filename,"w+b"); memset(buf,0,100); strcpy(buf,"Hello World!"); int i= fwrite(buf,sizeof(buf),1,fp); if( i!=-1) { printf("fwrite OK!n");; } fclose(fp); 当我用gcc编译的时候,在L...
代码:
char filename[20]="test.txt";
char buf[100];
FILE *fp;
fp = fopen(filename,"w+b");
memset(buf,0,100);
strcpy(buf,"Hello World!");
int i= fwrite(buf,sizeof(buf),1,fp);
if( i!=-1)
{
printf("fwrite OK!n");;
}
fclose(fp);
当我用gcc编译的时候,在LINUX里运行没有问题。可以正常的创建test.txt文件,也写入了相关的内容。
但是我用arm-linux-gcc编译成功了,在ARM板上运行的时候出错:SEGV
求大神们帮个忙理解一下!万分感谢!
char filename[20]="test.txt";
char buf[100];
FILE *fp;
fp = fopen(filename,"w+b");
memset(buf,0,100);
strcpy(buf,"Hello World!");
int i= fwrite(buf,sizeof(buf),1,fp);
if( i!=-1)
{
printf("fwrite OK!n");;
}
fclose(fp);
当我用gcc编译的时候,在LINUX里运行没有问题。可以正常的创建test.txt文件,也写入了相关的内容。
但是我用arm-linux-gcc编译成功了,在ARM板上运行的时候出错:SEGV
求大神们帮个忙理解一下!万分感谢!
|
帮顶,是不是因为fopen是标准函数库,你可以试下底层函数,例如open。
|
gdb跟踪下看看哪里SEGV了,另外你file下你的可执行文件看看格式正确不?
|
gdb 调试一下,看看具体的报错语句是哪个
|
用Linux 库函数 open
|
请检查fp是否为null
|
你先创建一个text.txt文件,在运行程序试试看……然后再接着分析你的问题
|
用gdb调试,板子上跑gdbserver可以通过网口远程调试。
|
估计不是权限问题,是权限问题会提示你的