假设某个数据的长度(4字节)信息保存在datafile.bin文件
INT fd = open("datafile.bin", O_RDWR);
if (-1 == fd) {
return;
}
DWORD dwRestSize = 4;
DWORD dwReadSize = 0; // read total size
BYTE byDataSize[4] = { 0, 0, 0, 0 };
// 为了防止读数据不完整,使用while循环(好处:数据量很大的时候len>>4也可以读取到完整的数据)
while (0 < dwRestSize) {
ret = read(fd, (byDataSize + dwReadSize), dwRestSize);
if (-1 == ret) {
close(fd);
return;
}
dwReadSize += ret;
dwRestSize -= ret;
}
if (4 != dwReadSize) {
close(fd);
return;
}
DWORD dwDataSize = (byDataSize[0] << 24) + (byDataSize[1] << 16) + (byDataSize[2] << 8) + byDataSize[3];