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

📄 estdio.c

📁 liu7788414
💻 C
字号:
#include "estdio.h"
#include <malloc.h>
#include <assert.h>
#define SYS_ASSERT assert
#include <string.h>

/* a few wrapper function, assert(0) when error happen.
 */ 
void *emalloc( int  size)
{
	void *r;
	r = malloc(size);
	SYS_ASSERT( 0 != r);
	return r;
}

FILE * efopen(const char* name, const char *mode)
{
	FILE *r ;
	r = fopen(name, mode);
	if(0 == r)
		printf("error open %s, it may be readonly\n",name);
	SYS_ASSERT( 0 != r);
	return r;
}


long flen(FILE*f )
{
	long len;
	fseek(f, 0, SEEK_END);
	len = ftell(f);
	fseek(f, 0, SEEK_SET);
	return len;	
}	

size_t efread( void *buffer, size_t size, size_t count, FILE *stream )
{
	size_t readed ;
	readed  = fread(buffer, size, count, stream);
	SYS_ASSERT( readed == size*count);
	return readed;
}

size_t efwrite( const void *buffer, size_t size, size_t count, FILE *stream )
{
	size_t writed;
	writed = fwrite(buffer, size, count, stream);
	SYS_ASSERT(writed == size*count);
	return writed;
}

#define MaxPath  1024


char * BinRead(const char * _fn, long *_len) 
{
	FILE *f;
	long len;
	char *buff;
	char fn[MaxPath];

	strcpy(fn, _fn);

	f = efopen(fn, "rb");
	len = flen(f);
	
	buff = emalloc(len);
	efread(buff, 1, len ,f );
	fclose(f);
	*_len  = len;
	return buff;
}

void BinWrite(const char *fn, unsigned char *bin, long len)
{
	FILE* f;

	f = efopen(fn, "wb");
	efwrite(bin, 1, len, f);
	fclose(f);
}

⌨️ 快捷键说明

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