C标准文件操作函数封装

#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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值