Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
11 years, 11 months ago.
Error in fopen
I have used "fopen" to open a file,when execute the "if" clause,success to open file,program keep going on.but execute the "else" clause,program is stop.please help me.
#include "mbed.h" int set_base(char* base) { FILE *file; sscanf(base,"%[^$]$%[^;];%s",BASE_NUM,ip,port); printf("BASE_NUM is %s\r\n",BASE_NUM); printf("ip is %s\r\n", ip); printf("port is %s\r\n", port); if((strncmp(ip,"0.0.0.0",7)==0)||(strncmp(port,"0000",4)==0)) { file=fopen("/local/base.txt","r");//program keep going on if(file==NULL) { printf("open file base.txt failed\r\n"); return -1; } fscanf(file,"%*[^$]$%[^;];%s",ip,port); printf("ip is %s\r\n", ip); printf("port is %s\r\n", port); fclose(file); } else { printf("ready to write file base.txt\r\n"); file=fopen("/local/base.txt","w");//program stop at here if(file==NULL) { printf("open file base.txt failed\r\n"); return -2; } fprintf(file,"%s",base); //fwrite(base,strlen(base),1,file); fclose(file); printf("Success update base.txt\r\n"); } return 0; }
1 Answer
9 years, 4 months ago.
I am trying to read and write files from SDcard using the RedBear BLE Nano (nRF51288). I was able to read and write files on the SDCard, using the library: "SDFileSystem.h".
But when I run the fopen function with BLE Heart Rate example, the code stops running. It seems that when the .hex is above 400KB fopen stops working.
Anyone faced this problem before?
Are there alternative for fopen function? I tried the sd.open but that didn't work with nRF51288.
Andre
Put the code tags on a seperate line please, otherwise they dont work.
posted by Erik - 05 Dec 2012int set_base(char* base) { FILE *file; sscanf(base,"%[^$]$%[^;];%s",BASE_NUM,ip,port); printf("BASE_NUM is %s\r\n",BASE_NUM); printf("ip is %s\r\n", ip); printf("port is %s\r\n", port); if((strncmp(ip,"0.0.0.0",7)==0)||(strncmp(port,"0000",4)==0)) { file=fopen("/local/base.txt","r");program keep going on if(file==NULL) { printf("open file base.txt failed\r\n"); return -1; } fscanf(file,"%*[^$]$%[^;];%s",ip,port); printf("ip is %s\r\n", ip); printf("port is %s\r\n", port); fclose(file); } else { printf("ready to write file base.txt\r\n"); file=fopen("/local/base.txt","w");program stop here if(file==NULL) { printf("open file base.txt failed\r\n"); return -1; } fprintf(file,"%s",base); fwrite(base,strlen(base),1,file); fclose(file); printf("Success update base.txt\r\n"); } return 0; }
posted by young shunfu 06 Dec 2012