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

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

?? iso9660.c

?? fat16文件系統源碼。需要的請下
?? C
?? 第 1 頁 / 共 3 頁
字號:
    }
    while ((tmp_word == 0) && (!no_more_entry));

    if (!no_more_entry)
    {

      /* Byte 1 : length of directory record      */
      /* Byte 2 : Extended attibute record length */
      entry_len = tmp_word & 0xFF;
      byte_to_read = entry_len;
      /* Byte 3 - 10 : location of extent : Logical Block Number of the first Logical Block affected to the file */
      iso_dgetw();                              /* Byte 3 - 4  */
      iso_dgetw();                              /* Byte 5 - 6  */
      iso_dgetw();                              /* Byte 7 - 8  */
      iso_dgetw();                              /* Byte 9 - 10 */
      
      /* Byte 11 - 18 : Data Length : Length of the file section in bytes */
      iso_dgetw();                                  /* Byte 11 - 12 */
      iso_dgetw();                                  /* Byte 13 - 14 */
      iso_dgetw();                                  /* Byte 15 - 16 */
      iso_dgetw();                                  /* Byte 17 - 18 */
      
      /* Byte 19 - 25 : Recording Time and Date */
      iso_dgetw();                                  /* Byte 19 - 20 */
      iso_dgetw();                                  /* Byte 21 - 22 */
      iso_dgetw();                                  /* Byte 23 - 24 */
     
      /* Byte 26 : File flags :
        bit 0 : Hidden file
        bit 1 : Directory entry
        bit 2 : Associated file 
        bit 3 : extend attribute
        bit 4 : extend attribute
        bit 5 : reserved
        bit 6 : reserved
        bit 7 : file has more than one directory record
      */
      attributes = (Byte) (iso_dgetw() >> 8);      /* Byte 25 - 26 */
    
      /* Byte 27 : File Unit Size */
      /* Byte 28 : Interleave Gap */
      iso_dgetw();                                 /* Byte 27 - 28 */
    
      /* Byte 29 - 32 : Volume Sequence Number*/
      iso_dgetw();                                 /* Byte 29 - 30 */
      iso_dgetw();                                 /* Byte 31 - 32 */
      
      /* Byte 33 : Length of File Identifier (LEN_FI) in byte */
      tmp_word = iso_dgetw();                      /* Byte 33 - 34 */
      len = tmp_word & 0xFF;
      
      byte_to_read -= 34;
      byte_to_read >>= 1;
      if (iso_cd == 0)
        len = len >> 1;
      end_of_name = FALSE;

      for (i = 0; i < byte_to_read; i++)
      {
        if (iso_cd)
        {
          if ( (i & 0x01) == 1)                         /* iso data extraction */
          {
            tmp_word = iso_dgetw();
            tmp_byte = ((Byte*)&tmp_word)[1];
          }
          else
          {
            tmp_byte = ((Byte*)&tmp_word)[0];
          }
        }
        else
        {
          tmp_byte = iso_dgetw() & 0xFF;      /* joliet data extraction */
        }
        switch (tmp_byte)
        {
          case 0x2E:                /* SEPARATOR 1                                              */
            j = 0;
            break;
    
          case 0x00:
          case 0x3B:                /* SEPARATOR 2 */
            end_of_name = TRUE;
            k = i;
          break;
    
          default:
          {
            if (j < 3)
            {
              if ((tmp_byte <= 'z') && (tmp_byte >= 'a'))
              {
                tmp_byte = tmp_byte - ('a' - 'A');
              }
              ext[j] = tmp_byte;
              j++;
            }
            break;
          }
        }
  
      }
      iso_file_cache.info.attributes = attributes;
      padding_byte--;
      if ((iso_check_ext() & current_ext) == FILE_XXX)
      {
       entry_rel += (entry_len + padding_byte);
      }
      else
      {
        iso_current_dir_file[fat_dir_list_index] = entry_rel + (padding_byte << 1);
        fat_dir_list_index++;
        entry_rel = entry_len;
      }
    }
  }
  while (no_more_entry == FALSE);
  iso_file_max_index = fat_dir_list_index;
}

/*F**************************************************************************
* NAME: iso_fetch_directory_info
*----------------------------------------------------------------------------
* PARAMS:
*   entry: directory entry structure
*
* return:
*----------------------------------------------------------------------------
* PURPOSE:
*   Get information about a directory or file entry
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*   
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void iso_fetch_directory_info (iso_file *entry)
{
Byte i;
Byte len;
Byte j;
Byte k;
Byte tmp_byte;
bdata bit flag; 
Uint16 tmp_word;
Uint16 entry_len;
bdata bit end_of_name;

    tmp_word = Hard_iso_read_word();
    /* Byte 1 : length of directory record      */
    /* Byte 2 : Extended attibute record length */
    entry->entry_len = tmp_word & 0xFF;
    entry_len = entry->entry_len;
    
    /* Byte 3 - 10 : location of extent : Logical Block Number of the first   */
    /* Logical Block affected to the file                                     */
    entry->extend_location =  Hard_iso_read_word();            
    entry->extend_location += (Uint32) ((Uint32)(Hard_iso_read_word()) << 16);  
    Hard_iso_read_word();                                      
    Hard_iso_read_word();                                      
    
    /* Byte 11 - 18 : Data Length : Length of the file section in bytes */
    entry->extend_size = Hard_iso_read_word();                  
    entry->extend_size += ((Uint32) (Hard_iso_read_word())) << 16;              
    Hard_iso_read_word();                                       
    Hard_iso_read_word();                                       

    /* Byte 19 - 25 : Recording Time and Date */
    Hard_iso_read_word();                                       
    Hard_iso_read_word();                                       
    Hard_iso_read_word();                                       
   
    /* Byte 26 : File flags :
      bit 0 : Hidden file
      bit 1 : Directory entry
      bit 2 : Associated file 
      bit 3 : extend attribute
      bit 4 : extend attribute
      bit 5 : reserved
      bit 6 : reserved
      bit 7 : file has more than one directory record
    */
    entry->attributes = (Byte) (Hard_iso_read_word() >> 8);     
  
    /* Byte 27 : File Unit Size */
    /* Byte 28 : Interleave Gap */
    Hard_iso_read_word();                            
  
    /* Byte 29 - 32 : Volume Sequence Number*/
    Hard_iso_read_word();
    Hard_iso_read_word();
    
    /* Byte 33 : Length of File Identifier (LEN_FI) in byte */
    tmp_word = Hard_iso_read_word(); 
    len = tmp_word & 0xFF;
    
    /* clear the name buffer */
    for (i = 0; i < MAX_FILENAME_LEN; i++)
      lfn_name[i] = 0;
    flag = 0;
    end_of_name = FALSE;
    if (iso_cd == 0)
      len = len >> 1;
  
    for (i = 0; i < len; i++)
    {
      if (iso_cd)
      {
        if ( (i & 0x01) == 1)                   /* iso data extraction */
        {
          tmp_word = Hard_iso_read_word();
          tmp_byte = ((Byte*)&tmp_word)[1];
        }
        else
        {
          tmp_byte = ((Byte*)&tmp_word)[0];
        }
      }
      else
      {
        tmp_byte = Hard_iso_read_word() & 0xFF; /* joliet data extraction */
      }
  
      switch (tmp_byte)
      {
        case 0x2E:                /* SEPARATOR 1 */
          j = i + 1;
          lfn_name[i] = tmp_byte;
          break;
  
        case 0x00:
        case 0x3B:                /* SEPARATOR 2 */
          end_of_name = TRUE;
          k = i;
        break;
  
        default:
        {
          if (!end_of_name)
            lfn_name[i] = tmp_byte;
          break;
        }
      }
    }
  
    /* extension : last time we found 0x2E : j position */
    if (end_of_name) i = k;
    if (len < 14)
    {
      for (; i < 14; i++)
      {
        lfn_name[i] = ' ';  /* append spaces for display reason */
      }
    }
    else
    {
      lfn_name[i++] = ' ';
      lfn_name[i++] = ' ';
      lfn_name[i++] = lfn_name[0];
      lfn_name[i++] = lfn_name[1];
      lfn_name[i++] = lfn_name[2];
      lfn_name[i++] = lfn_name[3];
      lfn_name[i++] = lfn_name[4];
      lfn_name[i++] = lfn_name[5];
      lfn_name[i++] = lfn_name[6];
      lfn_name[i++] = lfn_name[7];
      lfn_name[i++] = lfn_name[8];
      lfn_name[i++] = lfn_name[9];
      lfn_name[i++] = lfn_name[10];
      lfn_name[i++] = lfn_name[11];
      lfn_name[i++] = lfn_name[12];
    }
    lfn_name[i] = '\0';
    for (i = 0; i < 3; i++)
    {
      if (j + i <= len)
      {
        tmp_byte = lfn_name[i + j];
        if ((tmp_byte <= 'z') && (tmp_byte >= 'a'))
        {
          tmp_byte = tmp_byte - ('a' - 'A');
        }
        ext[i] = tmp_byte;
      }
    }
    Hard_iso_read_close();
}


/*F**************************************************************************
* NAME: iso_get_directory
*----------------------------------------------------------------------------
* PARAMS:
*   id: file extension to select
*   root : root directory or sub-directory
* return:
*   - OK: file available
*   - KO: no requested file found
*   - KO: low_level memory error
*----------------------------------------------------------------------------
* PURPOSE:
*   Select first available file/dir in any diretory
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*   Fill all the cache information for the first time
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
bit iso_get_directory(Byte id, bit root)
{
  current_ext = id;
  if (root == TRUE)
  {
    iso_dir_current_sect = iso_header.root.extend_location;
    iso_dir_size = iso_header.root.data_length / iso_header.logical_block_size;
  }
  else
  {
    if ((iso_file_cache.info.attributes & ATTR_ISO_DIR) == ATTR_ISO_DIR)
    {
      iso_dir_current_sect = iso_file_cache.info.extend_location;
      iso_dir_size = iso_file_cache.info.extend_size / iso_header.logical_block_size;
    }
    else
    {
      return KO;
    }
  }
  iso_dir_start_sect = iso_dir_current_sect;
  iso_dir_byte_count = 0;
  Hard_iso_read_close();
  Hard_iso_read_open(iso_dir_current_sect);
  iso_get_file_dir();
  Hard_iso_read_close();

  if (iso_file_max_index == 0)
  {
    iso_goto_parent_dir();
    return KO;
  }
  iso_dir_current_sect = iso_dir_start_sect;
  iso_dir_byte_count = 0;
  Hard_iso_read_open(iso_dir_current_sect);
  iso_dseek(iso_current_dir_file[0]);
  iso_fetch_directory_info(&iso_file_cache.parent);         /* the . dir */

  iso_dseek(iso_current_dir_file[1]);
  iso_fetch_directory_info(&iso_file_cache.parent);         /* the .. dir */

  iso_file_index = 1;

  return iso_goto_next();
}


/*F**************************************************************************
* NAME: iso_goto_first
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*   - OK: first file found
*   - KO: low level error
*----------------------------------------------------------------------------
* PURPOSE:
*   Fetch the first directory info in cache
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/ 
bit iso_goto_first(void)       
{                    
  iso_dir_current_sect = iso_dir_start_sect;
  iso_dir_byte_count = 0;
  Hard_iso_read_open(iso_dir_current_sect);
  iso_dseek(iso_current_dir_file[0]);
  iso_fetch_directory_info(&iso_file_cache.parent); /* the . dir  */

  iso_dseek(iso_current_dir_file[1]);
  iso_fetch_directory_info(&iso_file_cache.parent); /* the .. dir */

  iso_file_index = 1;
  return iso_goto_next();
}


/*F**************************************************************************
* NAME: iso_goto_last
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*   OK: last file available
*   KO: low level error
*----------------------------------------------------------------------------
* PURPOSE:
*   Fetch the last directory info in cache
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/ 
bit iso_goto_last (void)
{
Uint16 gl_offset;
Uint16 i;
  
  for (i = iso_file_index + 1, gl_offset = 0; i < fat_dir_list_last; iso_file_index++, i++)
    gl_offset += iso_current_dir_file[i];

  if (iso_dseek(gl_offset) == OK)
  iso_fetch_directory_info(&iso_file_cache.info);
  return OK;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区**美女毛片| 天天av天天翘天天综合网 | 亚洲欧美综合网| 亚洲成a人v欧美综合天堂下载| 激情丁香综合五月| 色婷婷综合激情| 成人精品视频一区二区三区尤物| 在线精品国精品国产尤物884a| 678五月天丁香亚洲综合网| 国产精品区一区二区三区| 日韩精品亚洲一区二区三区免费| 99精品久久99久久久久| 精品国产电影一区二区| 婷婷六月综合亚洲| 欧洲视频一区二区| 国产精品三级视频| 国产一区二区视频在线播放| 51久久夜色精品国产麻豆| 亚洲欧美另类久久久精品2019| 国产精品自拍在线| 日韩欧美国产成人一区二区| 亚洲成精国产精品女| 色婷婷精品久久二区二区蜜臂av | 亚洲精品中文在线观看| eeuss国产一区二区三区| 国产欧美一区二区三区在线看蜜臀| 日韩在线卡一卡二| 这里只有精品视频在线观看| 亚洲第一主播视频| 欧美系列亚洲系列| 亚洲影院久久精品| 欧美日韩在线播放三区四区| 亚洲一二三四在线| 色综合天天综合在线视频| 亚洲欧洲日韩女同| 成人av在线资源网站| 国产精品每日更新| 色哟哟日韩精品| 亚洲高清免费观看 | 久久影院视频免费| 国产又粗又猛又爽又黄91精品| 精品欧美久久久| 国产一区二区免费看| 国产亚洲女人久久久久毛片| 国产高清不卡二三区| 一区二区中文字幕在线| 91福利在线导航| 91精品欧美福利在线观看| 全国精品久久少妇| 精品国精品自拍自在线| 国产成人精品免费网站| 91福利在线导航| 日韩国产欧美在线视频| 日韩欧美视频一区| 国产99久久久国产精品潘金| 中文字幕精品三区| 日本电影亚洲天堂一区| 免费日本视频一区| 国产日本一区二区| 欧美伊人久久久久久午夜久久久久| 五月婷婷色综合| www国产精品av| 99久久精品免费精品国产| 91视频你懂的| 久久久久久久久伊人| 本田岬高潮一区二区三区| 怡红院av一区二区三区| 91精品国产91久久久久久最新毛片 | 午夜激情久久久| 精品国产网站在线观看| 97久久超碰国产精品| 七七婷婷婷婷精品国产| 国产精品天天看| 正在播放一区二区| 色综合久久久久综合体| 久久精品国产99国产| 亚洲美女免费在线| 欧美一级生活片| 99精品视频一区| 激情六月婷婷综合| 亚洲自拍另类综合| 国产校园另类小说区| 5858s免费视频成人| hitomi一区二区三区精品| 六月丁香婷婷久久| 亚洲图片欧美色图| 国产精品久久久久久户外露出| 日韩欧美中文字幕精品| 欧洲精品视频在线观看| 国产不卡一区视频| 久久av中文字幕片| 日本欧美一区二区在线观看| 中文字幕一区二区视频| 久久久久9999亚洲精品| 91精品婷婷国产综合久久竹菊| 一本色道亚洲精品aⅴ| 国产精品一区2区| 美国av一区二区| 婷婷中文字幕一区三区| 一区二区三区四区蜜桃| 日本一区二区视频在线观看| 亚洲精品一区在线观看| 欧美日本国产一区| 欧美色中文字幕| 色哟哟国产精品免费观看| 成人激情免费视频| 国产精品69毛片高清亚洲| 久久国产生活片100| 日韩国产在线观看一区| 亚洲一级在线观看| 亚洲自拍与偷拍| 首页亚洲欧美制服丝腿| 一级做a爱片久久| 亚洲一区二区三区四区的| 一区二区三区产品免费精品久久75| 国产精品久久久一本精品| 国产欧美精品一区二区色综合| 久久久久久99久久久精品网站| 精品美女被调教视频大全网站| 亚洲啪啪综合av一区二区三区| 亚洲精品在线观看视频| 在线亚洲一区二区| 亚洲女厕所小便bbb| 亚洲色图第一区| 一区二区三区四区中文字幕| 伊人色综合久久天天| 一区二区三区欧美| 亚洲成人777| 欧美福利一区二区| 欧美一区2区视频在线观看| 日韩欧美一级二级三级| 2021国产精品久久精品| 亚洲国产高清不卡| 99久久99精品久久久久久| 99久久精品免费看| 欧美系列日韩一区| 日韩欧美一区二区视频| 国产婷婷一区二区| 亚洲精品国产精品乱码不99| 日韩电影在线免费观看| 国产精品一二三四区| 99久久婷婷国产综合精品| 欧美丝袜自拍制服另类| 26uuu另类欧美| 国产精品国产精品国产专区不蜜 | 日韩区在线观看| 国产丝袜欧美中文另类| 亚洲综合丁香婷婷六月香| 久久99热这里只有精品| 97久久精品人人爽人人爽蜜臀| 欧美精品一卡两卡| 国产日韩av一区| 视频在线在亚洲| 成人黄色软件下载| 欧美日韩激情一区二区三区| 精品国产伦一区二区三区观看体验| 99久久久无码国产精品| 欧美欧美午夜aⅴ在线观看| 国产亚洲一本大道中文在线| 亚洲综合色在线| 成人小视频在线观看| 337p亚洲精品色噜噜狠狠| 国产亚洲精品bt天堂精选| 亚洲午夜激情av| 高清beeg欧美| 欧美大片在线观看| 洋洋av久久久久久久一区| 国产精品亚洲成人| 欧美日本乱大交xxxxx| 亚洲婷婷国产精品电影人久久| 日韩美女视频在线| 亚洲最色的网站| 成人一区二区视频| 日韩精品一区国产麻豆| 亚洲综合精品自拍| 91在线云播放| 国产午夜精品久久久久久久| 全国精品久久少妇| 欧美日韩和欧美的一区二区| 亚洲人成亚洲人成在线观看图片| 国产精品一区二区在线观看网站| 在线播放/欧美激情| 亚洲宅男天堂在线观看无病毒| aaa欧美大片| www.综合网.com| 久久免费的精品国产v∧| 日韩电影在线一区| 欧美系列在线观看| 一级中文字幕一区二区| 日本道色综合久久| 亚洲色图都市小说| 99久久综合99久久综合网站| 国产欧美精品一区二区三区四区| 国内精品视频一区二区三区八戒| 欧美一区二区三区在| 日本不卡视频在线观看| 欧美日韩国产电影| 婷婷中文字幕综合| 日韩一区二区三区在线观看| 琪琪久久久久日韩精品|