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

📄 ioapi.c

📁 psp上的reader 这个是以月光老大的cnreader为基础 增加了zip文件浏览功能
💻 C
字号:
/* ioapi.c -- IO base function header for compress/uncompress .zip   files using zlib + zip or unzip API   Version 1.01, May 8th, 2004   Copyright (C) 1998-2004 Gilles Vollant*///嶍彍#include <stdio.h>//嶍彍#include <stdlib.h>//嶍彍#include <string.h>//捛壛#include "zlibType.h"//捛壛#include "zlibFileMemory.h"#include "zlib.h"#include "ioapi.h"/* I've found an old Unix (a SunOS 4.1.3_U1) without all SEEK_* defined.... */#ifndef SEEK_CUR#define SEEK_CUR    1#endif#ifndef SEEK_END#define SEEK_END    2#endif#ifndef SEEK_SET#define SEEK_SET    0#endifvoidpf ZCALLBACK fopen_file_func OF((   voidpf opaque,   const char* filename,   int mode));uLong ZCALLBACK fread_file_func OF((   voidpf opaque,   voidpf stream,   void* buf,   uLong size));uLong ZCALLBACK fwrite_file_func OF((   voidpf opaque,   voidpf stream,   const void* buf,   uLong size));long ZCALLBACK ftell_file_func OF((   voidpf opaque,   voidpf stream));long ZCALLBACK fseek_file_func OF((   voidpf opaque,   voidpf stream,   uLong offset,   int origin));int ZCALLBACK fclose_file_func OF((   voidpf opaque,   voidpf stream));int ZCALLBACK ferror_file_func OF((   voidpf opaque,   voidpf stream));voidpf ZCALLBACK fopen_file_func (opaque, filename, mode)   voidpf opaque;   const char* filename;   int mode;{    FILE* file = NULL;    const char* mode_fopen = NULL;    if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)        mode_fopen = "rb";    else    if (mode & ZLIB_FILEFUNC_MODE_EXISTING)        mode_fopen = "r+b";    else    if (mode & ZLIB_FILEFUNC_MODE_CREATE)        mode_fopen = "wb";    if ((filename!=NULL) && (mode_fopen != NULL))        file = ___fopen(filename, mode_fopen);    return file;}uLong ZCALLBACK fread_file_func (opaque, stream, buf, size)   voidpf opaque;   voidpf stream;   void* buf;   uLong size;{    uLong ret;    ret = (uLong)___fread(buf, 1, (size_t)size, (FILE *)stream);    return ret;}uLong ZCALLBACK fwrite_file_func (opaque, stream, buf, size)   voidpf opaque;   voidpf stream;   const void* buf;   uLong size;{    uLong ret;    ret = (uLong)___fwrite(buf, 1, (size_t)size, (FILE *)stream);    return ret;}long ZCALLBACK ftell_file_func (opaque, stream)   voidpf opaque;   voidpf stream;{    long ret;    ret = ___ftell((FILE *)stream);    return ret;}long ZCALLBACK fseek_file_func (opaque, stream, offset, origin)   voidpf opaque;   voidpf stream;   uLong offset;   int origin;{    int fseek_origin=0;    long ret;    switch (origin)    {    case ZLIB_FILEFUNC_SEEK_CUR :        fseek_origin = SEEK_CUR;        break;    case ZLIB_FILEFUNC_SEEK_END :        fseek_origin = SEEK_END;        break;    case ZLIB_FILEFUNC_SEEK_SET :        fseek_origin = SEEK_SET;        break;    default: return -1;    }    ret = 0;    ___fseek((FILE *)stream, offset, fseek_origin);    return ret;}int ZCALLBACK fclose_file_func (opaque, stream)   voidpf opaque;   voidpf stream;{    int ret;    ret = ___fclose((FILE *)stream);    return ret;}int ZCALLBACK ferror_file_func (opaque, stream)   voidpf opaque;   voidpf stream;{    int ret;    ret = ___ferror((FILE *)stream);    return ret;}void fill_fopen_filefunc (pzlib_filefunc_def)  zlib_filefunc_def* pzlib_filefunc_def;{    pzlib_filefunc_def->zopen_file = fopen_file_func;    pzlib_filefunc_def->zread_file = fread_file_func;    pzlib_filefunc_def->zwrite_file = fwrite_file_func;    pzlib_filefunc_def->ztell_file = ftell_file_func;    pzlib_filefunc_def->zseek_file = fseek_file_func;    pzlib_filefunc_def->zclose_file = fclose_file_func;    pzlib_filefunc_def->zerror_file = ferror_file_func;    pzlib_filefunc_def->opaque = NULL;}

⌨️ 快捷键说明

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