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

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

?? untgz.c

?? 一個本地database引擎,支持中文T_Sql查詢,兼容DELPHI標準數據庫控件
?? C
?? 第 1 頁 / 共 2 頁
字號:
    buffer[len-1] = '\0';
  }
  if (mkdir(buffer, 0755) == 0)
    {
      free(buffer);
      return 1;
    }

  p = buffer+1;
  while (1)
    {
      char hold;

      while(*p && *p != '\\' && *p != '/')
        p++;
      hold = *p;
      *p = 0;
      if ((mkdir(buffer, 0755) == -1) && (errno == ENOENT))
        {
          fprintf(stderr,"%s: Couldn't create directory %s\n",prog,buffer);
          free(buffer);
          return 0;
        }
      if (hold == 0)
        break;
      *p++ = hold;
    }
  free(buffer);
  return 1;
}


int matchname (int arg,int argc,char **argv,char *fname)
{
  if (arg == argc)      /* no arguments given (untgz tgzarchive) */
    return 1;

  while (arg < argc)
    if (ExprMatch(fname,argv[arg++]))
      return 1;

  return 0; /* ignore this for the moment being */
}


/* tar file list or extract */

int tar (gzFile in,int action,int arg,int argc,char **argv)
{
  union  tar_buffer buffer;
  int    len;
  int    err;
  int    getheader = 1;
  int    remaining = 0;
  FILE   *outfile = NULL;
  char   fname[BLOCKSIZE];
  int    tarmode;
  time_t tartime;
  struct attr_item *attributes = NULL;

  if (action == TGZ_LIST)
    printf("    date      time     size                       file\n"
           " ---------- -------- --------- -------------------------------------\n");
  while (1)
    {
      len = gzread(in, &buffer, BLOCKSIZE);
      if (len < 0)
        error(gzerror(in, &err));
      /*
       * Always expect complete blocks to process
       * the tar information.
       */
      if (len != BLOCKSIZE)
        {
          action = TGZ_INVALID; /* force error exit */
          remaining = 0;        /* force I/O cleanup */
        }

      /*
       * If we have to get a tar header
       */
      if (getheader >= 1)
        {
          /*
           * if we met the end of the tar
           * or the end-of-tar block,
           * we are done
           */
          if (len == 0 || buffer.header.name[0] == 0)
            break;

          tarmode = getoct(buffer.header.mode,8);
          tartime = (time_t)getoct(buffer.header.mtime,12);
          if (tarmode == -1 || tartime == (time_t)-1)
            {
              buffer.header.name[0] = 0;
              action = TGZ_INVALID;
            }

          if (getheader == 1)
            {
              strncpy(fname,buffer.header.name,SHORTNAMESIZE);
              if (fname[SHORTNAMESIZE-1] != 0)
                  fname[SHORTNAMESIZE] = 0;
            }
          else
            {
              /*
               * The file name is longer than SHORTNAMESIZE
               */
              if (strncmp(fname,buffer.header.name,SHORTNAMESIZE-1) != 0)
                  error("bad long name");
              getheader = 1;
            }

          /*
           * Act according to the type flag
           */
          switch (buffer.header.typeflag)
            {
            case DIRTYPE:
              if (action == TGZ_LIST)
                printf(" %s     <dir> %s\n",strtime(&tartime),fname);
              if (action == TGZ_EXTRACT)
                {
                  makedir(fname);
                  push_attr(&attributes,fname,tarmode,tartime);
                }
              break;
            case REGTYPE:
            case AREGTYPE:
              remaining = getoct(buffer.header.size,12);
              if (remaining == -1)
                {
                  action = TGZ_INVALID;
                  break;
                }
              if (action == TGZ_LIST)
                printf(" %s %9d %s\n",strtime(&tartime),remaining,fname);
              else if (action == TGZ_EXTRACT)
                {
                  if (matchname(arg,argc,argv,fname))
                    {
                      outfile = fopen(fname,"wb");
                      if (outfile == NULL) {
                        /* try creating directory */
                        char *p = strrchr(fname, '/');
                        if (p != NULL) {
                          *p = '\0';
                          makedir(fname);
                          *p = '/';
                          outfile = fopen(fname,"wb");
                        }
                      }
                      if (outfile != NULL)
                        printf("Extracting %s\n",fname);
                      else
                        fprintf(stderr, "%s: Couldn't create %s",prog,fname);
                    }
                  else
                    outfile = NULL;
                }
              getheader = 0;
              break;
            case GNUTYPE_LONGLINK:
            case GNUTYPE_LONGNAME:
              remaining = getoct(buffer.header.size,12);
              if (remaining < 0 || remaining >= BLOCKSIZE)
                {
                  action = TGZ_INVALID;
                  break;
                }
              len = gzread(in, fname, BLOCKSIZE);
              if (len < 0)
                error(gzerror(in, &err));
              if (fname[BLOCKSIZE-1] != 0 || (int)strlen(fname) > remaining)
                {
                  action = TGZ_INVALID;
                  break;
                }
              getheader = 2;
              break;
            default:
              if (action == TGZ_LIST)
                printf(" %s     <---> %s\n",strtime(&tartime),fname);
              break;
            }
        }
      else
        {
          unsigned int bytes = (remaining > BLOCKSIZE) ? BLOCKSIZE : remaining;

          if (outfile != NULL)
            {
              if (fwrite(&buffer,sizeof(char),bytes,outfile) != bytes)
                {
                  fprintf(stderr,
                    "%s: Error writing %s -- skipping\n",prog,fname);
                  fclose(outfile);
                  outfile = NULL;
                  remove(fname);
                }
            }
          remaining -= bytes;
        }

      if (remaining == 0)
        {
          getheader = 1;
          if (outfile != NULL)
            {
              fclose(outfile);
              outfile = NULL;
              if (action != TGZ_INVALID)
                push_attr(&attributes,fname,tarmode,tartime);
            }
        }

      /*
       * Abandon if errors are found
       */
      if (action == TGZ_INVALID)
        {
          error("broken archive");
          break;
        }
    }

  /*
   * Restore file modes and time stamps
   */
  restore_attr(&attributes);

  if (gzclose(in) != Z_OK)
    error("failed gzclose");

  return 0;
}


/* ============================================================ */

void help(int exitval)
{
  printf("untgz version 0.2.1\n"
         "  using zlib version %s\n\n",
         zlibVersion());
  printf("Usage: untgz file.tgz            extract all files\n"
         "       untgz file.tgz fname ...  extract selected files\n"
         "       untgz -l file.tgz         list archive contents\n"
         "       untgz -h                  display this help\n");
  exit(exitval);
}

void error(const char *msg)
{
  fprintf(stderr, "%s: %s\n", prog, msg);
  exit(1);
}


/* ============================================================ */

#if defined(WIN32) && defined(__GNUC__)
int _CRT_glob = 0;      /* disable argument globbing in MinGW */
#endif

int main(int argc,char **argv)
{
    int         action = TGZ_EXTRACT;
    int         arg = 1;
    char        *TGZfile;
    gzFile      *f;

    prog = strrchr(argv[0],'\\');
    if (prog == NULL)
      {
        prog = strrchr(argv[0],'/');
        if (prog == NULL)
          {
            prog = strrchr(argv[0],':');
            if (prog == NULL)
              prog = argv[0];
            else
              prog++;
          }
        else
          prog++;
      }
    else
      prog++;

    if (argc == 1)
      help(0);

    if (strcmp(argv[arg],"-l") == 0)
      {
        action = TGZ_LIST;
        if (argc == ++arg)
          help(0);
      }
    else if (strcmp(argv[arg],"-h") == 0)
      {
        help(0);
      }

    if ((TGZfile = TGZfname(argv[arg])) == NULL)
      TGZnotfound(argv[arg]);

    ++arg;
    if ((action == TGZ_LIST) && (arg != argc))
      help(1);

/*
 *  Process the TGZ file
 */
    switch(action)
      {
      case TGZ_LIST:
      case TGZ_EXTRACT:
        f = gzopen(TGZfile,"rb");
        if (f == NULL)
          {
            fprintf(stderr,"%s: Couldn't gzopen %s\n",prog,TGZfile);
            return 1;
          }
        exit(tar(f, action, arg, argc, argv));
      break;

      default:
        error("Unknown option");
        exit(1);
      }

    return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产综合一区二区| 中文字幕国产一区二区| 久久精品国产99久久6| 精品国产在天天线2019| 成人激情视频网站| 爽好多水快深点欧美视频| 国产三级欧美三级| 欧美视频日韩视频在线观看| 性感美女极品91精品| 日本一区二区三区国色天香 | 九九视频精品免费| 国产精品毛片久久久久久久| 欧美美女直播网站| 国产在线一区二区| 亚洲成人高清在线| 亚洲视频在线一区二区| 精品欧美久久久| 91国偷自产一区二区开放时间 | 日本精品一区二区三区四区的功能| 一区二区三区日韩欧美| 亚洲三级免费观看| 精品卡一卡二卡三卡四在线| 成人av电影免费在线播放| 久久精品99久久久| 日韩成人免费电影| 亚洲国产精品精华液网站| 亚洲视频免费看| 精品999在线播放| 欧美v日韩v国产v| 久久婷婷国产综合精品青草| 56国语精品自产拍在线观看| 91麻豆精品国产91久久久| 在线免费观看一区| 4438x亚洲最大成人网| 欧美xxxxxxxx| 中文字幕亚洲精品在线观看| 亚洲国产精品嫩草影院| 亚洲精品乱码久久久久久黑人 | 欧美一卡二卡三卡| 欧美日韩精品欧美日韩精品一综合| 国产一区二区三区免费| 国产在线精品一区二区三区不卡| 国产69精品久久久久777| 91豆麻精品91久久久久久| 91精品国产91久久综合桃花| 国产亚洲精品bt天堂精选| 亚洲精品伦理在线| 日韩高清在线一区| 99精品在线观看视频| 日韩欧美激情一区| 亚洲成人精品一区| 91麻豆视频网站| 日韩免费看网站| 亚洲影院在线观看| av中文一区二区三区| 精品国产免费人成电影在线观看四季 | 久久国产麻豆精品| 欧美精品18+| 亚洲精品国产无套在线观| 99re成人在线| 精品少妇一区二区三区| 午夜精品久久久久久久99水蜜桃 | 国产91丝袜在线播放0| 制服丝袜国产精品| 亚洲在线视频一区| 91免费在线视频观看| 久久亚洲二区三区| 美女网站在线免费欧美精品| 97久久人人超碰| 中文字幕亚洲一区二区va在线| 国产一区高清在线| 欧美大片一区二区| 国产福利视频一区二区三区| 久久综合网色—综合色88| 日韩黄色片在线观看| 久久天天做天天爱综合色| 国产成人自拍在线| 亚洲国产精品v| 精品视频一区二区不卡| 奇米四色…亚洲| 日韩精品影音先锋| av毛片久久久久**hd| 亚洲国产日产av| 欧美日韩午夜在线视频| 裸体健美xxxx欧美裸体表演| 欧美精品一区二区三区在线 | 视频一区中文字幕| 99riav久久精品riav| 亚洲国产综合人成综合网站| 日韩欧美一区二区免费| 国产福利一区在线| 亚洲欧美另类图片小说| 在线电影一区二区三区| 久久精品国产精品青草| 亚洲天堂精品在线观看| 日韩亚洲欧美一区二区三区| 99久久免费精品| 国产高清在线精品| 亚洲免费观看高清完整版在线观看| 欧美日韩色综合| 色先锋aa成人| 97精品超碰一区二区三区| 国产一区二区在线观看视频| 香蕉加勒比综合久久| 国产精品白丝在线| 国产三级久久久| 在线观看91av| 欧洲在线/亚洲| jiyouzz国产精品久久| 免费欧美在线视频| 免费观看日韩av| 免费看黄色91| 亚洲午夜在线观看视频在线| 精品国产一区二区亚洲人成毛片 | 欧美日韩国产中文| 成人aa视频在线观看| 成人中文字幕在线| 一本到高清视频免费精品| 不卡的av电影在线观看| 丁香啪啪综合成人亚洲小说| 久久精品国产一区二区| 久久国产精品第一页| 国产麻豆精品在线观看| 国产黄色成人av| 色综合欧美在线视频区| 欧美精品一二三| 欧美日韩成人综合| 精品蜜桃在线看| 亚洲欧美激情小说另类| 性久久久久久久久久久久| 精品一区二区免费在线观看| 91蜜桃免费观看视频| 亚洲精品一区二区三区影院| 综合久久久久久| 丝袜诱惑亚洲看片| 国产91在线观看丝袜| 欧美一级视频精品观看| 综合电影一区二区三区 | 日韩欧美中文字幕精品| 成人欧美一区二区三区在线播放| 视频一区免费在线观看| 99re热这里只有精品免费视频| 欧美日韩电影一区| 久久亚洲综合av| 国产中文一区二区三区| 欧美一区二区三区四区五区| 中文字幕国产精品一区二区| 国产精品18久久久久久久久久久久 | 久久久青草青青国产亚洲免观| 亚洲国产欧美另类丝袜| 91蜜桃网址入口| 国产精品久久久久久久久免费樱桃 | 国内成人免费视频| 日韩免费视频一区二区| 日本一道高清亚洲日美韩| 成人av网站在线观看免费| 欧美中文字幕亚洲一区二区va在线| 欧美精品自拍偷拍| 国产精品乱码一区二区三区软件| 一个色妞综合视频在线观看| 精品视频999| 麻豆高清免费国产一区| 国产日韩精品久久久| 成人午夜精品一区二区三区| 日本一区二区三区免费乱视频| 国产盗摄一区二区三区| 国产日韩精品久久久| 99riav一区二区三区| 亚洲国产成人tv| 2017欧美狠狠色| 99久久免费精品| 蜜芽一区二区三区| 国产精品人人做人人爽人人添| 天天色 色综合| 91久久一区二区| 免费一区二区视频| 国产精品久久一卡二卡| 在线看一区二区| 国产精品夜夜嗨| 亚洲尤物视频在线| 中文字幕亚洲成人| 91久久一区二区| 高清视频一区二区| 精品亚洲成a人| 天堂精品中文字幕在线| 国产精品嫩草99a| 精品福利av导航| 欧美一级高清大全免费观看| 97久久久精品综合88久久| 国产另类ts人妖一区二区| 老司机精品视频导航| 日韩国产在线一| 国产精品萝li| 中文字幕av资源一区| 日本一二三不卡| 国产精品私人影院| 亚洲女与黑人做爰| 亚洲成人av中文| 久久99国产精品尤物| 国产一区二区影院|