Chinaunix首页 | 论坛 | 博客
  • 博客访问: 136808
  • 博文数量: 53
  • 博客积分: 121
  • 博客等级: 入伍新兵
  • 技术积分: 570
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-04 10:59
文章分类
文章存档

2020年(1)

2013年(48)

2012年(4)

我的朋友

分类: LINUX

2013-10-07 22:59:57


#2013_10_06   星期日   add by greshem
gzip  中间的work 的函数 最为重要  , work 函数的定义 在   get_method 里面 定义的.

J:\portage\app-arch\gzip\gzip-1.4.chm
main
    treat_file(argv[optind++]);
        treat_stdin();
        open_input_file (iname, &istat);
        get_method(ifd); /* updates ofname if original given */
            if (memcmp(magic, GZIP_MAGIC, 2) == 0
              work = unzip;
            else if (memcmp(magic, PACK_MAGIC, 2) == 0) {
              work = unpack;
              method = PACKED;
            else if (memcmp(magic, LZW_MAGIC, 2) == 0) {
              work = unlzw;
              method = COMPRESSED;
              last_member = 1;
            else if (memcmp(magic, LZH_MAGIC, 2) == 0) {
              work = unlzh;
              method = LZHED;
              last_member = 1;
            else if (force && to_stdout && !list) { /* pass input unchanged */
              method = STORED;
              work = copy;

    
        (*work)(ifd, ofd) != OK) {



阅读(722) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~