cdb_seq.c

来自「打魔兽战网的都知道他是什么」· C语言 代码 · 共 31 行

C
31
字号
/* sequential record retrieval routines * * This file is a part of tinycdb package by Michael Tokarev, mjt@corpit.ru. * Public domain. */#include "common/setup_before.h"#include "cdb_int.h"#include "common/setup_after.h"intcdb_seqnext(unsigned *cptr, struct cdb *cdbp) {  unsigned klen, vlen;  unsigned pos = *cptr;  unsigned dend = cdbp->cdb_dend;  const unsigned char *mem = cdbp->cdb_mem;  if (pos > dend - 8)    return 0;  klen = cdb_unpack(mem + pos);  vlen = cdb_unpack(mem + pos + 4);  pos += 8;  if (dend - klen < pos || dend - vlen < pos + klen)    return errno = EPROTO, -1;  cdbp->cdb_kpos = pos;  cdbp->cdb_klen = klen;  cdbp->cdb_vpos = pos + klen;  cdbp->cdb_vlen = vlen;  *cptr = pos + klen + vlen;  return 1;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?