#ifndef WrapStdCFile_H
#define WrapStdCFile_H
#if defined _MSC_VER || defined WIN32
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <stdio.h>
size_t Read(FILE* fp, void* readBuf, size_t nBytes)
{
return fread(readBuf, 1, nBytes, fp);
}
size_t Write(FILE* fp, void* writeBuf, size_t nBytes)
{
return fwrite(writeBuf, 1, nBytes, fp);
}
#define OnlyRead 1 //文件必须存在,若不存在,则返回NULL
#define ReadWrite 2 //清空文件内容,若文件不存在就创建
#define Append 3 //以追加方式打开读写文件,若文件不存在就创建
//#ifdef UNICODE
//#define Open OpenW
//#else
//#define Open OpenA
//#endif
//FILE* OpenW(const wchar_t* filename, int opt)
//{
// FILE* fp = NULL;
// switch (opt)
// {
// case OnlyRead:
// fp = _wfopen(filename, L"rb");
// break;
// case Append:
// fp = _wfopen(filename, L"ab+");
// break;
// case ReadWrite:
// fp = _wfopen(filename, L"wb+");
// break;
// }
// return fp;
//}
FILE* Open(const char* filename, int opt)
{
FILE* fp = NULL;
switch (opt)
{
case OnlyRead:
fp = fopen(filename, "rb");
break;
case Append:
fp = fopen(filename, "ab+");
break;
case ReadWrite:
fp = fopen(filename, "wb+");
break;
}
return fp;
}
int Close(FILE* fp)
{
return fclose(fp);
}
//int Remove(FILE* fp)
//{
// return remove(fp);
//}
#define FileHead 1 //文件开头
#define FileCurrent 2 //文件读写指针当前位置
#define FileEnd 3 //文件末尾
int Seek(FILE* fp, int nStartPos, int offset)
{
int ret = -1;
switch (nStartPos)
{
case FileCurrent:
ret = fseek(fp, offset, SEEK_CUR);
break;
case FileEnd:
ret = fseek(fp, offset, SEEK_END);
break;
case FileHead:
ret = fseek(fp, offset, SEEK_SET);
break;
}
return ret;
}
#endif