初级会员

- 积分
- 79
- 金钱
- 79
- 注册时间
- 2022-4-8
- 在线时间
- 82 小时
|
5金钱
写入内容为“0123456789abcdef\n<over>”,可拔出来插到电脑上看到的是“0123”,也就是我下面的代码只能写入4个字符,是哪里错了?
- //写入内容到文件。filePath=文件路径,writeBuffer=写入内容
- void testWrite(char *filePath, char *writeBuffer)
- {
- FIL fnew; //文件对象
- FRESULT write_SD; //fatfs返回代码
- UINT fnum;
- write_SD= f_open(&fnew,filePath, FA_OPEN_ALWAYS|FA_WRITE);
- write_SD= f_lseek(&fnew,f_size(&fnew));
- write_SD= f_write(&fnew, writeBuffer , sizeof(writeBuffer), &fnum);
- if(write_SD==FR_OK)
- printf("-testWrite: 写入成功!\r\n");
- else {
- printf("-testWrite: 写入失败!\r\n");
- }
- write_SD=f_close(&fnew);
- }
复制代码
|
最佳答案
查看完整内容[请看2#楼]
writeBuffer是一个指针,占32位,4字节;sizeof(writeBuffer)是4,所以每次只写入四个字节数据;可以改成strlen(writeBuffer)
|