花了10块钱买的,希望对大家有帮助。/*#############################################################################
* 文件名:file.c
* 功能: 实现了指纹相关文件的操作
* modified by PRTsinghua@hotmail.com
#############################################################################*/
#include
#include
#include
#include "file.h"
/* 对象的这些接口实现是私有的,不必为用户所知 */
typedef struct iFvsFile_t
{
FILE *pf; /* 文件指针 */
} iFvsFile_t;
/******************************************************************************
* 功能:创建一个新的文件对象,只有在创建之后,文件对象才能为其它函数所用。
* 参数:无
* 返回:若创建失败,返回NULL;否则返回新的对象句柄。
******************************************************************************/
FvsFile_t FileCreate()
{
iFvsFile_t* p = NULL;
p = (iFvsFile_t*)malloc(sizeof(iFvsFile_t));
if (p!=NULL)
p->pf = NULL;
return (FvsFile_t)p;
}
/******************************************************************************
* 功能:破坏一个已经存在的文件对象,在毁坏之后,文件对象不能再为其它函数所用。
* 参数:file 即将删除的文件对象指针
* 返回:无返回值
******************************************************************************/
void FileDestroy(FvsFile_t file)
{
iFvsFile_t* p = NULL;
if (file==NULL)
return;
/* 关闭文件,如果它还打开着 */
(void)FileClose(file);
p = file;
free(p);
}
/******************************************************************************
* 功能:打开一个新的文件。一个文件可以读打开,写打开,或者被创建。
* 参数:file 文件对象
* name 待打开文件的名字
* flags 打开标志
* 返回:错误编号
******************************************************************************/
FvsError_t FileOpen(FvsFile_t file, const FvsString_t name,
const FvsFileOptions_t flags)
{
iFvsFile_t* p = (iFvsFile_t*)file;
char strFlags[10];
int nflags = (int)flags;
/* 关闭文件,如果已经打开 */
(void)FileClose(p);
strcpy(strFlags, "");
if ( (nflags & FvsFileRead)!=0 &&
(nflags & FvsFileWrite)!=0 )
strcat(strFlags, "rw");
else
{
if ((nflags & FvsFileRead)!=0)
strcat(strFlags, "r");
if ((nflags & FvsFileWrite)!=0)
strcat(strFlags, "w");
}
strcat(strFlags, "b");
if ((nfl
2019-12-21 20:13:20
42KB
zwsb
1