我使用这个例程进行从文件到内存的二进制读取,直到现在都运行良好......至少在 iOS 上,在模拟器中(......没有付费的开发人员程序(还;)))
数字,例如 fileSize,bytesRead 是可以的,但它在最后给出了乱码......
我不能覆盖内存,因为我立即进行输出......
然后我认为这可能是对齐边界问题,例如 fileSize % 4 = det。胡言乱语。但这将是一种奇怪的行为,函数获取大小和计数,lib 应该计算在后台读取的多字节,所以这不应该导致问题......
这是我使用的代码:
uint8_t *readFileToMemory(FILE *fp)
{
fseek(fp, 0, SEEK_END);
long fileSize = ftell(fp);
rewind(fp);
//
printf("fileSize %lu bytes\n",fileSize);
//
uint8_t *fileData = NULL;
//
fileData = (uint8_t *)requestMemory(fileData, (MEM_TYPE_MEMSIZE)fileSize, BF_MEM_ZERO_NO, "readFileToMemory()");
fread(fileData, 1, (size_t)fileSize, fp);
//
long sizeRead = fread(fileData, 1, (size_t)fileSize, fp);
printf("sizeRead %lu bytes\n",sizeRead);
//
fclose(fp);
//
printf("+\n+\nfileData:\n%s+\n+\n",fileData);
//
return fileData;
}
我发布这个问题的原因是“为什么胡言乱语?” 在 iOS-sim 上,我确实有一个简单的解决方法...
尼尔斯