背景(可略过不看):我之前在给一款产品做寿命测试时候,需要循环往复的运行它,单片机记录运行次数,并按每运行100次就给电脑发送运行次数(这个方案其实不好,寿命测试一般是直接在产品上挂接一个计数器,这样不需要额外的电脑,不过这里先不管方案好不好的问题)。于是在电脑端就有了存储这个次数和读取这个次数的需求。我就想用最简单的二进制文件来进行这个值的存取。
参考我调出来的例程(用emp.bin文件来存取变量running_time的值):
unsigned int running_time = 0;running_time = (p_temp[3] << 16) | (p_temp[4] << 8) | p_temp[5];/*****save running_time to bin*****/ FILE *fp; fp = fopen("emp.bin", "wb"); if (fp == NULL) { puts("Cannot open the file."); return ; } fwrite(&running_time, sizeof(running_time), 1, fp); fclose(fp); fp = fopen("emp.bin", "rb"); if (fp == NULL) { puts("Cannot open the file."); return ; } while (fread(&running_time, sizeof(running_time), 1, fp) == 1) //while (fread(&e, sizeof(e), 1, fp) == 1) { printf("the running_time is:%d \t\n", running_time); } fclose(fp);