db.c

来自「eybuild-x86-arm920t-2.6.7.tar 很好的嵌入式WEB」· C语言 代码 · 共 81 行

C
81
字号
#include <stdio.h>#include <string.h>#include "db.h"/* open data base */void * open_db(char * mode){    FILE * 		fp;        fp = fopen(DB_NAME, mode);        return fp;}/* close data base */int close_db(void * fp){    if (NULL != fp)        fclose((FILE*)fp);        return 0;	}/* read record from base */int db_read_next(void * fp, RECORD * rcd){    size_t		len;        if (NULL == fp)        return -1;            if (feof((FILE*)fp))        return 0;        memset(rcd, 0, sizeof(RECORD));        /* read header */    len = sizeof(RECORD) - sizeof(rcd->msg);    if (len != (int)fread(rcd, 1, len, (FILE*)fp))        return -1;        /* read message body */    if (rcd->msg_len != fread(rcd->msg, 1, rcd->msg_len, (FILE*)fp))        return -1;        return sizeof(RECORD);}/* insert record to data base */int db_insert(void * fp, RECORD * rcd){    size_t		len;        if (NULL == fp || fseek((FILE*)fp, 0, SEEK_END))        return -1;        /* write header */    rcd->msg_len = strlen(rcd->msg);    len = sizeof(RECORD) - sizeof(rcd->msg);        if (len != fwrite(rcd, 1, len, (FILE*)fp))        return -1;        /* write message body */    if (rcd->msg_len != (fwrite(rcd->msg, 1, rcd->msg_len, (FILE*)fp)))        return -1;        return sizeof(RECORD);}

⌨️ 快捷键说明

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