亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gzappend.c

?? 一個本地database引擎,支持中文T_Sql查詢,兼容DELPHI標準數據庫控件
?? C
?? 第 1 頁 / 共 2 頁
字號:

/* decompress gzip file "name", return strm with a deflate stream ready to
   continue compression of the data in the gzip file, and return a file
   descriptor pointing to where to write the compressed data -- the deflate
   stream is initialized to compress using level "level" */
local int gzscan(char *name, z_stream *strm, int level)
{
    int ret, lastbit, left, full;
    unsigned have;
    unsigned long crc, tot;
    unsigned char *window;
    off_t lastoff, end;
    file gz;

    /* open gzip file */
    gz.name = name;
    gz.fd = open(name, O_RDWR, 0);
    if (gz.fd == -1) bye("cannot open ", name);
    gz.buf = malloc(CHUNK);
    if (gz.buf == NULL) bye("out of memory", "");
    gz.size = LGCHUNK;
    gz.left = 0;

    /* skip gzip header */
    gzheader(&gz);

    /* prepare to decompress */
    window = malloc(DSIZE);
    if (window == NULL) bye("out of memory", "");
    strm->zalloc = Z_NULL;
    strm->zfree = Z_NULL;
    strm->opaque = Z_NULL;
    ret = inflateInit2(strm, -15);
    if (ret != Z_OK) bye("out of memory", " or library mismatch");

    /* decompress the deflate stream, saving append information */
    lastbit = 0;
    lastoff = lseek(gz.fd, 0L, SEEK_CUR) - gz.left;
    left = 0;
    strm->avail_in = gz.left;
    strm->next_in = gz.next;
    crc = crc32(0L, Z_NULL, 0);
    have = full = 0;
    do {
        /* if needed, get more input */
        if (strm->avail_in == 0) {
            readmore(&gz);
            strm->avail_in = gz.left;
            strm->next_in = gz.next;
        }

        /* set up output to next available section of sliding window */
        strm->avail_out = DSIZE - have;
        strm->next_out = window + have;

        /* inflate and check for errors */
        ret = inflate(strm, Z_BLOCK);
        if (ret == Z_STREAM_ERROR) bye("internal stream error!", "");
        if (ret == Z_MEM_ERROR) bye("out of memory", "");
        if (ret == Z_DATA_ERROR)
            bye("invalid compressed data--format violated in", name);

        /* update crc and sliding window pointer */
        crc = crc32(crc, window + have, DSIZE - have - strm->avail_out);
        if (strm->avail_out)
            have = DSIZE - strm->avail_out;
        else {
            have = 0;
            full = 1;
        }

        /* process end of block */
        if (strm->data_type & 128) {
            if (strm->data_type & 64)
                left = strm->data_type & 0x1f;
            else {
                lastbit = strm->data_type & 0x1f;
                lastoff = lseek(gz.fd, 0L, SEEK_CUR) - strm->avail_in;
            }
        }
    } while (ret != Z_STREAM_END);
    inflateEnd(strm);
    gz.left = strm->avail_in;
    gz.next = strm->next_in;

    /* save the location of the end of the compressed data */
    end = lseek(gz.fd, 0L, SEEK_CUR) - gz.left;

    /* check gzip trailer and save total for deflate */
    if (crc != read4(&gz))
        bye("invalid compressed data--crc mismatch in ", name);
    tot = strm->total_out;
    if ((tot & 0xffffffffUL) != read4(&gz))
        bye("invalid compressed data--length mismatch in", name);

    /* if not at end of file, warn */
    if (gz.left || readin(&gz))
        fprintf(stderr,
            "gzappend warning: junk at end of gzip file overwritten\n");

    /* clear last block bit */
    lseek(gz.fd, lastoff - (lastbit != 0), SEEK_SET);
    if (read(gz.fd, gz.buf, 1) != 1) bye("reading after seek on ", name);
    *gz.buf = (unsigned char)(*gz.buf ^ (1 << ((8 - lastbit) & 7)));
    lseek(gz.fd, -1L, SEEK_CUR);
    if (write(gz.fd, gz.buf, 1) != 1) bye("writing after seek to ", name);

    /* if window wrapped, build dictionary from window by rotating */
    if (full) {
        rotate(window, DSIZE, have);
        have = DSIZE;
    }

    /* set up deflate stream with window, crc, total_in, and leftover bits */
    ret = deflateInit2(strm, level, Z_DEFLATED, -15, 8, Z_DEFAULT_STRATEGY);
    if (ret != Z_OK) bye("out of memory", "");
    deflateSetDictionary(strm, window, have);
    strm->adler = crc;
    strm->total_in = tot;
    if (left) {
        lseek(gz.fd, --end, SEEK_SET);
        if (read(gz.fd, gz.buf, 1) != 1) bye("reading after seek on ", name);
        deflatePrime(strm, 8 - left, *gz.buf);
    }
    lseek(gz.fd, end, SEEK_SET);

    /* clean up and return */
    free(window);
    free(gz.buf);
    return gz.fd;
}

/* append file "name" to gzip file gd using deflate stream strm -- if last
   is true, then finish off the deflate stream at the end */
local void gztack(char *name, int gd, z_stream *strm, int last)
{
    int fd, len, ret;
    unsigned left;
    unsigned char *in, *out;

    /* open file to compress and append */
    fd = 0;
    if (name != NULL) {
        fd = open(name, O_RDONLY, 0);
        if (fd == -1)
            fprintf(stderr, "gzappend warning: %s not found, skipping ...\n",
                    name);
    }

    /* allocate buffers */
    in = fd == -1 ? NULL : malloc(CHUNK);
    out = malloc(CHUNK);
    if (out == NULL) bye("out of memory", "");

    /* compress input file and append to gzip file */
    do {
        /* get more input */
        len = fd == -1 ? 0 : read(fd, in, CHUNK);
        if (len == -1) {
            fprintf(stderr,
                    "gzappend warning: error reading %s, skipping rest ...\n",
                    name);
            len = 0;
        }
        strm->avail_in = (unsigned)len;
        strm->next_in = in;
        if (len) strm->adler = crc32(strm->adler, in, (unsigned)len);

        /* compress and write all available output */
        do {
            strm->avail_out = CHUNK;
            strm->next_out = out;
            ret = deflate(strm, last && len == 0 ? Z_FINISH : Z_NO_FLUSH);
            left = CHUNK - strm->avail_out;
            while (left) {
                len = write(gd, out + CHUNK - strm->avail_out - left, left);
                if (len == -1) bye("writing gzip file", "");
                left -= (unsigned)len;
            }
        } while (strm->avail_out == 0 && ret != Z_STREAM_END);
    } while (len != 0);

    /* write trailer after last entry */
    if (last) {
        deflateEnd(strm);
        out[0] = (unsigned char)(strm->adler);
        out[1] = (unsigned char)(strm->adler >> 8);
        out[2] = (unsigned char)(strm->adler >> 16);
        out[3] = (unsigned char)(strm->adler >> 24);
        out[4] = (unsigned char)(strm->total_in);
        out[5] = (unsigned char)(strm->total_in >> 8);
        out[6] = (unsigned char)(strm->total_in >> 16);
        out[7] = (unsigned char)(strm->total_in >> 24);
        len = 8;
        do {
            ret = write(gd, out + 8 - len, len);
            if (ret == -1) bye("writing gzip file", "");
            len -= ret;
        } while (len);
        close(gd);
    }

    /* clean up and return */
    free(out);
    if (in != NULL) free(in);
    if (fd > 0) close(fd);
}

/* process the compression level option if present, scan the gzip file, and
   append the specified files, or append the data from stdin if no other file
   names are provided on the command line -- the gzip file must be writable
   and seekable */
int main(int argc, char **argv)
{
    int gd, level;
    z_stream strm;

    /* ignore command name */
    argv++;

    /* provide usage if no arguments */
    if (*argv == NULL) {
        printf("gzappend 1.1 (4 Nov 2003) Copyright (C) 2003 Mark Adler\n");
        printf(
            "usage: gzappend [-level] file.gz [ addthis [ andthis ... ]]\n");
        return 0;
    }

    /* set compression level */
    level = Z_DEFAULT_COMPRESSION;
    if (argv[0][0] == '-') {
        if (argv[0][1] < '0' || argv[0][1] > '9' || argv[0][2] != 0)
            bye("invalid compression level", "");
        level = argv[0][1] - '0';
        if (*++argv == NULL) bye("no gzip file name after options", "");
    }

    /* prepare to append to gzip file */
    gd = gzscan(*argv++, &strm, level);

    /* append files on command line, or from stdin if none */
    if (*argv == NULL)
        gztack(NULL, gd, &strm, 1);
    else
        do {
            gztack(*argv, gd, &strm, argv[1] == NULL);
        } while (*++argv != NULL);
    return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三区三四区视频在线观看 | 国产裸体歌舞团一区二区| 国产高清不卡一区| 欧美日韩国产精品自在自线| 国产三级欧美三级日产三级99| 亚洲黄色免费网站| 国产成人在线视频播放| 欧美系列亚洲系列| 国产精品美女久久久久aⅴ | 国产1区2区3区精品美女| 欧洲一区二区av| 国产欧美一区二区三区网站| 蜜臀久久久久久久| 欧美日韩一区久久| 亚洲蜜臀av乱码久久精品| 国产一区二区三区视频在线播放| 欧美日韩大陆一区二区| 一区二区三区加勒比av| 国产中文字幕精品| 3d成人h动漫网站入口| 一个色综合网站| 色欧美片视频在线观看| 国产精品久久久久久久第一福利 | 五月婷婷另类国产| 在线观看日韩一区| 亚洲资源中文字幕| 色婷婷精品大视频在线蜜桃视频 | 香港成人在线视频| 欧美影片第一页| 亚洲国产成人av好男人在线观看| 成人激情午夜影院| 一区在线观看免费| 成人高清伦理免费影院在线观看| 国产日产欧美一区二区三区| 国产成人精品一区二| 国产精品女主播av| 99精品一区二区| 一区二区欧美视频| 欧美疯狂性受xxxxx喷水图片| 日本va欧美va瓶| 久久久av毛片精品| 国产mv日韩mv欧美| 亚洲免费视频成人| 欧美日韩精品一二三区| 毛片基地黄久久久久久天堂| 久久这里只有精品视频网| 国产最新精品精品你懂的| 337p日本欧洲亚洲大胆色噜噜| 九色综合狠狠综合久久| 中文字幕精品一区| 欧美亚洲综合一区| 蜜臀av一区二区在线观看| 久久久久久久综合日本| 91在线小视频| 爽好多水快深点欧美视频| 国产性做久久久久久| 色老综合老女人久久久| 日本不卡视频在线| 国产精品沙发午睡系列990531| 91日韩一区二区三区| 人人精品人人爱| 国产日韩欧美电影| 欧美亚州韩日在线看免费版国语版| 日本中文字幕不卡| 国产蜜臀av在线一区二区三区| 91日韩在线专区| 久久99热99| 亚洲一区二区综合| 国产亚洲一区二区三区四区 | 中文字幕综合网| 欧美日韩卡一卡二| 韩国成人福利片在线播放| 亚洲欧美色综合| 欧美精品一区二区三区在线| 色狠狠av一区二区三区| 久久99久久久欧美国产| 亚洲永久免费视频| 亚洲国产精品成人综合| 欧美日韩和欧美的一区二区| 国产精品综合一区二区| 午夜伦欧美伦电影理论片| 亚洲欧洲性图库| 久久精品亚洲麻豆av一区二区| 欧美体内she精高潮| 99视频一区二区三区| 九九视频精品免费| 午夜在线成人av| 一区二区三区欧美亚洲| 欧美激情综合在线| 欧美成人精品高清在线播放| 色噜噜久久综合| 99精品久久久久久| 成人黄色在线网站| 国产精品一二三| 韩国v欧美v日本v亚洲v| 奇米精品一区二区三区在线观看 | 欧美一级一级性生活免费录像| 91网站在线播放| 成人免费av在线| 国产不卡高清在线观看视频| 久久99九九99精品| 麻豆精品视频在线观看免费| 天天影视网天天综合色在线播放| 亚洲综合色在线| 亚洲bdsm女犯bdsm网站| 亚洲综合一二区| 亚洲sss视频在线视频| 日日欢夜夜爽一区| 午夜精品久久久久久| 亚洲精品国产一区二区精华液 | 国产精品久久久久一区| 国产精品视频线看| 国产精品久久久久影院亚瑟| 国产精品天干天干在观线| 亚洲国产精品成人综合| 国产精品欧美综合在线| 国产精品午夜在线观看| 国产欧美视频在线观看| 国产精品久久久久久户外露出| 国产精品婷婷午夜在线观看| 日韩伦理电影网| 一区二区三区精密机械公司| 一级做a爱片久久| 亚洲va天堂va国产va久| 日韩精品每日更新| 久久99精品久久久久久国产越南 | 欧美一级淫片007| 精品国产乱码久久久久久蜜臀| 久久综合色一综合色88| 中文字幕乱码日本亚洲一区二区| 欧美极品aⅴ影院| 一区二区三区欧美日韩| 亚洲国产裸拍裸体视频在线观看乱了 | 久久99久久99小草精品免视看| 国内欧美视频一区二区| 成人污视频在线观看| 欧洲国内综合视频| 制服丝袜亚洲精品中文字幕| 精品国产青草久久久久福利| 中文字幕+乱码+中文字幕一区| 国产精品久久久久精k8| 午夜精品成人在线视频| 国内精品久久久久影院一蜜桃| 成人av在线播放网址| 在线观看亚洲精品| 欧美mv和日韩mv国产网站| 中文字幕不卡在线| 亚洲成人午夜影院| 国产精品 日产精品 欧美精品| av电影一区二区| 7777精品伊人久久久大香线蕉的 | 精品少妇一区二区三区视频免付费 | 老司机精品视频在线| av一区二区三区黑人| 在线播放日韩导航| 国产精品国产三级国产有无不卡 | 日韩你懂的电影在线观看| 国产精品免费aⅴ片在线观看| 亚洲风情在线资源站| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 免费观看成人鲁鲁鲁鲁鲁视频| 国产成人精品三级| 欧美一级国产精品| 伊人婷婷欧美激情| 国产成人精品网址| 日韩欧美国产不卡| 亚洲五月六月丁香激情| 成a人片亚洲日本久久| 日韩欧美国产电影| 亚洲一区二区美女| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 在线精品视频小说1| 久久精品免费在线观看| 毛片av一区二区| 欧美日韩不卡视频| 日韩一区在线看| 国产91对白在线观看九色| 欧美成人精品1314www| 亚洲gay无套男同| 欧美午夜在线观看| 国产精品对白交换视频| 久久国产综合精品| 日韩一区二区视频在线观看| 天堂久久一区二区三区| 在线亚洲一区观看| 一区二区三区中文在线观看| 成人黄色在线网站| 国产精品久久久久婷婷| 风间由美一区二区av101| 久久午夜老司机| 国产综合成人久久大片91| 日韩一级视频免费观看在线| 日韩精品91亚洲二区在线观看 | 日韩高清电影一区| 欧美色图片你懂的| 午夜精品福利视频网站| 91精品麻豆日日躁夜夜躁| 美女一区二区在线观看| 日韩视频免费直播| 久久99精品国产.久久久久久|