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

📄 globals.c

📁 给出了 zip 压缩算法的完整实现过程。
💻 C
字号:
/*  Copyright (c) 1990-2005 Info-ZIP.  All rights reserved.  See the accompanying file LICENSE, version 2004-May-22 or later  (the contents of which are also included in zip.h) for terms of use.  If, for some reason, both of these files are missing, the Info-ZIP license  also may be found at:  ftp://ftp.info-zip.org/pub/infozip/license.html*//* *  globals.c by Mark Adler */#define __GLOBALS_C#define GLOBALS         /* include definition of errors[] in zip.h */#ifndef UTIL#define UTIL            /* do not declare the read_buf variable */#endif#include "zip.h"/* Handy place to build error messages */char errbuf[FNMAX+81];/* Argument processing globals */int recurse = 0;        /* 1=recurse into directories encountered */int dispose = 0;        /* 1=remove files after put in zip file */int pathput = 1;        /* 1=store path with name */#ifdef RISCOSint scanimage = 1;      /* 1=scan through image files */#endifint method = BEST;      /* one of BEST, DEFLATE (only), or STORE (only) */int dosify = 0;         /* 1=make new entries look like MSDOS */int verbose = 0;        /* 1=report oddities in zip file structure */int fix = 0;            /* 1=fix the zip file */int adjust = 0;         /* 1=adjust offsets for sfx'd file (keep preamble) */int level = 6;          /* 0=fastest compression, 9=best compression */int translate_eol = 0;  /* Translate end-of-line LF -> CR LF */#ifdef VMS   int vmsver = 0;      /* 1=append VMS version number to file names */   int vms_native = 0;  /* 1=store in VMS format */#endif /* VMS */#if defined(OS2) || defined(WIN32)   int use_longname_ea = 0; /* 1=use the .LONGNAME EA as the file's name */#endifint hidden_files = 0;   /* process hidden and system files */int volume_label = 0;   /* add volume label */int dirnames = 1;       /* include directory entries by default */int linkput = 0;        /* 1=store symbolic links as such */int noisy = 1;          /* 0=quiet operation */int extra_fields = 1;   /* 0=do not create extra fields */#ifdef NTSD_EAS    int use_privileges = 0; /* 1=use security privilege overrides */#endif#ifndef RISCOS#ifndef QDOS#ifndef TANDEMchar *special = ".Z:.zip:.zoo:.arc:.lzh:.arj"; /* List of special suffixes */#else /* TANDEM */char *special = " Z: zip: zoo: arc: lzh: arj"; /* List of special suffixes */#endif#else /* QDOS */char *special = "_Z:_zip:_zoo:_arc:_lzh:_arj"; /* List of special suffixes */#endif#else /* RISCOS */char *special = "DDC:D96:68E";#endif /* ?RISCOS */char *key = NULL;       /* Scramble password if scrambling */char *tempath = NULL;   /* Path for temporary files */FILE *mesg;             /* stdout by default, stderr for piping *//* Zip file globals */char *zipfile;          /* New or existing zip archive (zip file) */ulg zipbeg;             /* Starting offset of zip structures */ulg cenbeg;             /* Starting offset of central directory */struct zlist far *zfiles = NULL;  /* Pointer to list of files in zip file */extent zcount;          /* Number of files in zip file */extent zcomlen;         /* Length of zip file comment */char *zcomment = NULL;  /* Zip file comment (not zero-terminated) */struct zlist far **zsort;       /* List of files sorted by name */ulg tempzn;             /* Count of bytes written to output zip file *//* Files to operate on that are not in zip file */struct flist far *found = NULL; /* List of names found */struct flist far * far *fnxt = &found;                        /* Where to put next name in found list */extent fcount;          /* Count of files in list *//* Patterns to be matched */struct plist *patterns = NULL;  /* List of patterns to be matched */unsigned pcount = 0;            /* number of patterns */unsigned icount = 0;            /* number of include only patterns */unsigned Rcount = 0;            /* number of -R include patterns */#ifdef IZ_CHECK_TZint zp_tz_is_valid;     /* signals "timezone info is available" */#endif

⌨️ 快捷键说明

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