0
我有一些以二进制格式读写数据的C++代码。我想看看它在文件中读取和写入的内容,所以我想将它转换为二进制读取和写入非二进制读写。另外,当我将二进制写入转换为非二进制写入时,我希望它仍然能够正确读取信息。如何才能做到这一点?如何在C++中将二进制读取/写入转换为非二进制读取/写入
写入功能:
int btwrite(short rrn, BTPAGE *page_ptr)
{
// long lseek(), addr;
long addr;
addr = (long) rrn * (long) PAGESIZE + HEADERSIZE;
lseek(btfd, addr, 0);
return (write(btfd, page_ptr, PAGESIZE));
}
read函数:
int btread(short rrn, BTPAGE *page_ptr)
{
// long lseek(), addr;
long addr;
addr = (long)rrn * (long)PAGESIZE + HEADERSIZE;
lseek(btfd, addr, 0);
return (read(btfd, page_ptr, PAGESIZE));
}
这里是BTPAGE的定义:
typedef struct {
short keycount; /* number of keys in page */
int key[MAXKEYS]; /* the actual keys */
short child[MAXKEYS+1]; /* ptrs to rrns of descendants */
} BTPAGE;
需要更多的细节,尤其是'BTPAGE'。 – 2010-05-09 00:24:34
我会借此机会插入Google的协议缓冲区:http://code.google.com/apis/protocolbuffers/ – Stephen 2010-05-09 00:49:24
编写检查二进制文件格式的工具是否足够,或者您是否需要查看它来自作家计划? – Stephen 2010-05-09 00:52:09