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

📄 mmapped.h

📁 acm比赛参考用书 里面附有源代码 还有Report 为北大ACM试题
💻 H
字号:
#ifndef _ZZIP_MMAPPED_H_#define _ZZIP_MMAPPED_H_/* * simplified zip disk access using a mmapping of the whole archive. * * Author:  *      Guido Draheim <guidod@gmx.de> * * Copyright (c) 2003,2004 Guido Draheim *          All rights reserved, *          use under the restrictions of the  *          Lesser GNU General Public License *          or alternatively the restrictions  *          of the Mozilla Public License 1.1 */#include <zzip/types.h>typedef struct zzip_disk_file  ZZIP_DISK_FILE;typedef struct zzip_disk       ZZIP_DISK;typedef struct zzip_disk_entry ZZIP_DISK_ENTRY;/* we expose this structure so third party applications can augment * on them. The mmapped zip access usually just needs the two pointers * specifying the mmapped area, whereever you have that from. */struct zzip_disk{    char* buffer;      /* start of mmapped area, the base of all seekvals */    char* endbuf;      /* end of mmapped area, i.e. buffer + buflen */    char* reserved;    /* - for later extensions (might be renamed) */    char* user;        /* - free for applications (use this!) */    long  flags;       /* bit 0: findfile searches case-insensitive */    long  mapped;      /* used for mmap() wrappers of zzip/__mmap.h */    long  unused;      /* - for later extensions (might be renamed) */    long  code;        /* - free for applications (use this!) */};typedef int (*zzip_strcmp_fn_t)(char*, char*);typedef int (*zzip_fnmatch_fn_t)(char*, char*, int);#define zzip_disk_extern externzzip_disk_extern intzzip_disk_init(ZZIP_DISK* disk, char* buffer, zzip_size_t buflen);zzip_disk_extern ZZIP_DISK* _zzip_restrictzzip_disk_new(void);zzip_disk_extern ZZIP_DISK* _zzip_restrictzzip_disk_mmap(int fd);zzip_disk_extern int zzip_disk_munmap(ZZIP_DISK* disk);zzip_disk_extern ZZIP_DISK*  _zzip_restrictzzip_disk_open(char* filename);zzip_disk_extern intzzip_disk_close(ZZIP_DISK* disk);zzip_disk_extern intzzip_disk_init (ZZIP_DISK* disk, char* buffer, _zzip_size_t buflen);zzip_disk_extern ZZIP_DISK_ENTRY*zzip_disk_findfirst(ZZIP_DISK* disk);zzip_disk_extern ZZIP_DISK_ENTRY*zzip_disk_findnext(ZZIP_DISK* disk, ZZIP_DISK_ENTRY* entry);char* _zzip_restrictzzip_disk_entry_strdup_name(ZZIP_DISK* disk, ZZIP_DISK_ENTRY* entry);struct zzip_file_header*zzip_disk_entry_to_file_header(ZZIP_DISK* disk, ZZIP_DISK_ENTRY* entry);char*zzip_disk_entry_to_data(ZZIP_DISK* disk, ZZIP_DISK_ENTRY* entry);zzip_disk_extern ZZIP_DISK_ENTRY*zzip_disk_findfile(ZZIP_DISK* disk, 		   char* filename, ZZIP_DISK_ENTRY* after,		   zzip_strcmp_fn_t compare);zzip_disk_extern ZZIP_DISK_ENTRY*zzip_disk_findmatch(ZZIP_DISK* disk, 		    char* filespec, ZZIP_DISK_ENTRY* after,		    zzip_fnmatch_fn_t compare, int flags);zzip_disk_extern ZZIP_DISK_FILE* _zzip_restrictzzip_disk_entry_fopen (ZZIP_DISK* disk, ZZIP_DISK_ENTRY* entry);zzip_disk_extern ZZIP_DISK_FILE* _zzip_restrictzzip_disk_fopen (ZZIP_DISK* disk, char* filename);zzip_disk_extern _zzip_size_tzzip_disk_fread (void* ptr, _zzip_size_t size, _zzip_size_t nmemb,		 ZZIP_DISK_FILE* file);zzip_disk_extern intzzip_disk_fclose (ZZIP_DISK_FILE* file);intzzip_disk_feof (ZZIP_DISK_FILE* file);#endif

⌨️ 快捷键说明

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