在c中将ByteArray写入文件
Writing ByteArray to file in c
我有一个包含一些 ByteArray 数据的结构
typedef struct {
uint32_t length;
uint8_t* bytes;
} FREByteArray;
我在这里尝试将其保存到文件中
FREByteArray byteArray;
if((fileToWrite = fopen(filePath, "wb+")) != NULL){
fwrite(&byteArray.bytes, 1, byteArray.length, fileToWrite);
fclose(fileToWrite);
}
但这似乎并没有保存所有数据,保存的文件大小为16KB,实际数据约为32KB。我认为 fwrite 无法将整个 bytearray 写入文件。
这是保存 ByteArray 的正确方法吗? fwrite 在一次调用中可以处理多少有限制吗?
替换
fwrite(&byteArray.bytes, 1, byteArray.length, fileToWrite);
与
fwrite(byteArray.bytes, 1, byteArray.length, fileToWrite);
正如@Sourav Ghosh 所指出的,确保 byteArray.bytes
指向正确的源位置。
我有一个包含一些 ByteArray 数据的结构
typedef struct {
uint32_t length;
uint8_t* bytes;
} FREByteArray;
我在这里尝试将其保存到文件中
FREByteArray byteArray;
if((fileToWrite = fopen(filePath, "wb+")) != NULL){
fwrite(&byteArray.bytes, 1, byteArray.length, fileToWrite);
fclose(fileToWrite);
}
但这似乎并没有保存所有数据,保存的文件大小为16KB,实际数据约为32KB。我认为 fwrite 无法将整个 bytearray 写入文件。
这是保存 ByteArray 的正确方法吗? fwrite 在一次调用中可以处理多少有限制吗?
替换
fwrite(&byteArray.bytes, 1, byteArray.length, fileToWrite);
与
fwrite(byteArray.bytes, 1, byteArray.length, fileToWrite);
正如@Sourav Ghosh 所指出的,确保 byteArray.bytes
指向正确的源位置。