该练习创建的数据库内容比较复杂,采用以下图示的方式给出结构
Database_create(conn)
:创建一个Connection类型的结构体conn,并对里面Database类型的结构体db的Address结构体赋初值
Database_write(conn)
:将文件位置指示器指向文件开头,并把创建好的database类型结构体写入到文件,使用fflush()强制将缓冲区数据写入到文件
Database_get(conn, id)
:根据输入id,获取db数组的一个Address结构体,如果Address->set为1则打印,为0报错
Database_set(conn, id, name, email)
:获取输入id的Address结构体,将set置为1,用strncpy将name复制到addr->name
Database_delete(conn, id)
:将下标为id的Address结构体的set置为0
Database_list(conn)
:将所有set为1的address数组打印出来
Database_close(conn)
:关闭文件fclose,先释放Database再释放Connection
附加题
- 将die函数改为
void die(const char *message, struct connection *conn);
在函数上加入Database_close(conn)