⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 db.c

📁 這裡對linux系統下的CGI的開發用很好的入門學習指導作用。是學習CGI 的初學者非常好的實例材料。
💻 C
字号:

#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(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, 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(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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -