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

📄 file.h

📁 c代码
💻 H
字号:
/*#############################################################################
 * 文件名:file.h
 * 功能:  实现了指纹相关文件的操作
 * modified by  PRTsinghua@hotmail.com
#############################################################################*/

#if !defined FVS__FILE_HEADER__INCLUDED__
#define FVS__FILE_HEADER__INCLUDED__


/* 基本类型的定义文件 */
#include "fvstypes.h"


/* 对象的这些接口实现是私有的,不必为用户所知。使用这里提供的函数操作文件 */
typedef FvsHandle_t FvsFile_t;

/* BITMAP文件头结构 */
typedef struct tagBITMAPFILEHEADER { // bmfh 
    FvsWord_t    bfType; 
    FvsDword_t   bfSize; 
    FvsWord_t    bfReserved1; 
    FvsWord_t    bfReserved2; 
    FvsDword_t   bfOffBits; 
} BITMAPFILEHEADER; 

/* BITMAP信息头结构 */
typedef struct tagBITMAPINFOHEADER{ // bmih 
    FvsDword_t  biSize; 
    FvsDword_t   biWidth;
    FvsDword_t   biHeight;
    FvsWord_t   biPlanes; 
    FvsWord_t   biBitCount; 
    FvsDword_t  biCompression; 
    FvsDword_t  biSizeImage; 
    FvsDword_t   biXPelsPerMeter;
    FvsDword_t   biYPelsPerMeter;
    FvsDword_t  biClrUsed; 
    FvsDword_t  biClrImportant; 
} BITMAPINFOHEADER; 

/* BITMAP调色板结构 */
typedef struct tagRGBQUAD { // rgbq 
    FvsByte_t    rgbBlue; 
    FvsByte_t    rgbGreen; 
    FvsByte_t    rgbRed; 
    FvsByte_t    rgbReserved; 
} RGBQUAD; 


/******************************************************************************
  * 功能:创建一个新的文件对象,只有在创建之后,文件对象才能为其它函数所用。
  * 参数:无
  * 返回:若创建失败,返回NULL;否则返回新的对象句柄。
******************************************************************************/
extern FvsFile_t FileCreate(void);


/******************************************************************************
  * 功能:破坏一个已经存在的文件对象,在毁坏之后,文件对象不能再为其它函数所用。
  * 参数:file  即将删除的文件对象指针
  * 返回:无返回值
******************************************************************************/
extern void FileDestroy(FvsFile_t file);


/* 文件打开函数所用的选项 */
typedef enum FvsFileOptions_t
{
    /* 读打开 */
    FvsFileRead   = (1<<1),
    /* 写打开 */
    FvsFileWrite  = (1<<2),
    /* 创建打开 */
    FvsFileCreate = (1<<3)
} FvsFileOptions_t;


/******************************************************************************
  * 功能:打开一个新的文件。一个文件可以读打开,写打开,或者被创建。
  * 参数:file    文件对象
  *       name    待打开文件的名字
  *       flags   打开标志
  * 返回:错误编号
******************************************************************************/
extern FvsError_t FileOpen(FvsFile_t file, const FvsString_t name, 
						const FvsFileOptions_t flags);


/******************************************************************************
  * 功能:关闭一个文件对象,文件关闭之后,文件不再可用。
  * 参数:file    文件对象
  * 返回:错误编号
******************************************************************************/
FvsError_t FileClose(FvsFile_t file);


/******************************************************************************
  * 功能:从文件中读数据,所读取的字节数由length决定。读取的数据保存于指针data。
  * 参数:file    文件对象
  *       data    指向存储数据的数组
  *       length  要读取的字节数
  * 返回:实际读取的字节数
******************************************************************************/
FvsUint_t FileRead(FvsFile_t file, FvsPointer_t data, 
						const FvsUint_t length);


/******************************************************************************
  * 功能:往文件中写数据,所写的字节数由length决定。要写入的数据保存于指针data。
  * 参数:file    文件对象
  *       data    指向存储数据的数组
  *       length  要写入的字节数
  * 返回:实际写入的字节数
******************************************************************************/
FvsUint_t FileWrite(FvsFile_t file, const FvsPointer_t data, 
						const FvsUint_t length);


/******************************************************************************
  * 功能:从文件中得到一个字节
  * 参数:file    文件对象
  * 返回:读取的字节
******************************************************************************/
FvsByte_t FileGetByte(FvsFile_t file);


/******************************************************************************
  * 功能:从文件中读取一个字
  * 参数:file    文件对象
  * 返回:读取的字
******************************************************************************/
FvsWord_t FileGetWord(FvsFile_t file);


/******************************************************************************
  * 功能:测试一个文件是否打开
  * 参数:file    文件对象
  * 返回:文件打开,则返回true;否则返回false
******************************************************************************/
FvsBool_t FileIsOpen(const FvsFile_t file);


/******************************************************************************
  * 功能:测试是否到了文件结尾
  * 参数:file    文件对象
  * 返回:到了结尾,返回true;否则返回false
******************************************************************************/
FvsBool_t FileIsAtEOF(const FvsFile_t file);


/******************************************************************************
  * 功能:提交对文件所作的更改
  * 参数:file    文件对象
  * 返回:错误编号
******************************************************************************/
FvsError_t FileCommit(FvsFile_t file);


/******************************************************************************
  * 功能:跳到文件的开头
  * 参数:file    文件对象
  * 返回:错误编号
******************************************************************************/
FvsError_t FileSeekToBegin(FvsFile_t file);


/******************************************************************************
  * 功能:跳到文件的结尾
  * 参数:file    文件对象
  * 返回:错误编号
******************************************************************************/
FvsError_t FileSeekToEnd(FvsFile_t file);


/******************************************************************************
  * 功能:跳到文件的指定位置
  * 参数:file     文件对象
  *       position 指定的文件位置
  * 返回:错误编号
******************************************************************************/
FvsError_t FileSeek(FvsFile_t file, const FvsUint_t position);


/******************************************************************************
  * 功能:得到当前的文件指针位置
  * 参数:file    文件对象
  * 返回:当前的指针位置
******************************************************************************/
FvsUint_t FileGetPosition(FvsFile_t file);


#endif /* FVS__FILE_HEADER__INCLUDED__ */

⌨️ 快捷键说明

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