用于可变长文件表项导航的方法和系统技术方案

技术编号:2853231 阅读:171 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种用于可变长文件表项导航的方法、系统、配置和制品。在一个实施例中,在文件表项的第一结尾处的第一表项标记的第一文件表项大小部分被读取。作为所述第一文件表项大小部分的函数,可以计算在所述文件表项的第二结尾处的第二表项标记的位置。判定在所述计算的位置处的文件数据是否是第二表项标记,并且如果是,则通过将所述第一表项标记的所述第一表项大小部分与所述第二表项标记的第二文件表项大小部分进行比较来判定所述第一与第二表项标记之间的所述文件数据是否是有效的表项。还描述并要求保护了其他实施例。

【技术实现步骤摘要】

本专利技术涉及用于可变长文件表项导航的方法、系统、配置和制品。
技术介绍
数据或信息的集合可以在计算机系统中被给予一个名称并在该计算机系统中被存储为文件。存在许多不同类型的文件以便存储各类数据。例如,数字或文本数据可以存储在数据文件中,程序可以存储在程序文件中,目录可以存储在目录文件中,等等。存储在文件中的数据可以被再划分成表项。在某些文件中,表项可以具有固定的长度。在其他文件中,每个表项的长度可以根据将存储在该表项处的数据的大小而变化。已使用各种技术来定位文件中的特定表项。某些文件可以具有例如形式为表、索引或目录的外部数据,其列出了文件的每个表项的位置。此外,所述外部数据还可以指示每个表项的大小以及位置。其他文件可以具有形式为分隔符或标记的外部数据,所述分隔符或标记在每个表项之间以便标记相邻表项的开始和结尾。一种类型的标记包括唯一的字符串。可以以便于从每个表项的数据中区分标记的方式来选择所述字符串。在此类文件中,可以通过遍历文件(开始于文件的起始处)并检查文件的数据的每个字节以查找表项标记来定位表项。以这种方式,可以计算每个文件表项的开始和结尾。在另一种方法中,每个标记可以包括大小信息,其指示了由该标记所标记的关联表项的大小。置于表项的开始处,标记的大小信息可以被读取并用于从一个表项跳到下一个表项。如果置于每个表项的结尾处,标记的大小信息可以被读取并用于以另一个方向从一个表项跳到下一个表项。还有一种方法是包括每个标记、下一个标记的地址。再次地,置于表项的开始处,标记的下一个标记地址信息可以被读取并用于从一个表项跳到下一个表项。计算机系统可以具有一个或多个嵌入式设备,每个嵌入式设备本身都可以是作为更大的系统(例如主机系统)的一部分的专用计算机系统。例如,可以将存储控制器嵌入主机。嵌入式存储控制器可以被安装在具有存储在ROM或其他类型的存储器内的程序的单个微处理器板上。有些嵌入式系统包括操作系统。其他嵌入式系统可以是如此专用化,以致整个逻辑可以被实现为单个程序。嵌入式系统(像一般的计算机系统一样)通常生成日志信息以记录诸如错误状况之类的各种事件。此类日志信息通常存储在文件中以保存所记录的事件。但是,存储空间通常是非常珍贵的,尤其是在嵌入式系统中。
技术实现思路
本专利技术提供了一种用于可变长文件表项导航的方法、系统、配置和制品。在一个实施例中,在文件表项的第一结尾处的第一表项标记的第一文件表项大小部分被读取。作为所述第一文件表项大小部分的函数,可以计算在所述文件表项的第二结尾处的第二表项标记的位置。判定在所述计算的位置处的文件数据是否是第二表项标记,并且如果是,则通过将所述第一表项标记的所述第一表项大小部分与所述第二表项标记的第二文件表项大小部分进行比较来判定所述第一与第二表项标记之间的所述文件数据是否是有效的表项。还描述并要求保护了其他实施例。附图说明现在参考附图,其中相同的标号代表所有附图中的相应部件,这些附图是图1示出了根据某些描述的实施例的计算环境的方块图;图2示出了便于可变长文件表项导航的文件结构的一个实施例; 图3示出了用于可变长文件表项导航的逻辑的一个实施例;图4示出了其中可以实现某些描述的方面的计算机体系结构的方块图。具体实施例方式在以下说明中,参考了形成本说明书的一部分并示出了若干实施例的附图。可以理解,可以使用其他实施例并且可以做出结构和操作更改而不偏离本专利技术的范围。图1示出了根据此处提供的说明的某些实施例的计算环境的方块图。在此实施例中是主机系统100的计算设备被示为具有嵌入式计算机系统,所述嵌入式计算机系统在此实施例中是与辅助存储装置102相连的存储控制器101。尽管辅助存储装置102被示为在主机系统100和嵌入式存储控制器101的外部,但是在某些实施例中,辅助存储装置102可以在主机系统100或存储控制器101的内部。在其他实施例中,可以使用其他主机系统(未示出),例如就主机系统100而言执行输入输出(I/O)操作的主机系统。主机系统100可以包括个人计算机、工作站、服务器、大型机、手持式计算机、掌上电脑、电话设备、网络家电、刀片计算机、存储控制器等。类似地,嵌入式计算机系统101可以包括个人计算机、工作站、服务器、大型机、手持式计算机、掌上电脑、电话设备、网络家电、刀片计算机、存储控制器等。辅助存储装置102可以包括直接存取存储设备(例如盘、磁带、读/写DVD、读/写CDROM、独立磁盘冗余阵列(RAID)、完全磁盘束(JBOD)等),或包括任何其他存储设备。辅助存储装置102、主机系统100以及嵌入式计算机系统101中的每一个都可以通过网络(未示出)(例如,互联网、内联网、局域网(LAN)、存储区域网络(SAN)、广域网(WAN)、无线网络等)与它们中的一个或多个相连。可替代地,辅助存储装置102、主机系统100以及嵌入式计算机系统101中的每一个可以不通过网络(例如通过直通线、公用总线系统等)与它们中的一个或多个相连。主机系统100可以包括中央处理单元(CPU)104、存储器106、固件108以及操作系统110。类似地,嵌入式计算机系统101可以包括CPU 114、存储器116、固件118以及操作系统120。每个CPU 104、114可以包括例如复杂指令集计算(CISC)处理器或精简指令集计算(RISC)处理器。可以理解,取决于特定应用,可以使用其他类型的处理器。虽然对于关联的系统100、101,只示出了单个CPU 104、114,但是在某些实施例中,主机系统100或嵌入式计算机系统101都可以包括其他的CPU以形成多处理系统每个存储器106、116可以包括随机存取存储器(RAM)。每个存储器106、116也可以被称为物理存储器。在某些实施例中,存储器106、116可以被包括在芯片内,所述芯片连接到关联的计算机系统100、101中的总线。每个存储器106、116可以是易失性的,这意味着存储器可能需要稳定的电流来维持存储器106、116的内容。可替代地,每个存储器106、116可以包括非易失性存储器。每个固件108、118可以包括已被写到只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)等的程序或数据。每个固件108、118可以是硬件和软件的组合。每个操作系统110、120可以是控制在关联的计算机系统100、101中执行的系统和应用程序的执行的软件。每个操作系统110、120可以向在关联的计算机系统100、101中执行的系统和应用程序提供各种服务。在某些实施例中,每个操作系统110、120可以包括例如LINUX操作系统、UNIX操作系统或AIX操作系统。可以理解,取决于特定应用,可以使用其他类型的操作系统。如前面所提到的,在所示的实施例中,嵌入式计算机系统101是嵌入式存储控制器。可以理解,嵌入式计算机系统101可以是如上面所提到的其他类型的设备。在其他实施例中,计算机系统100可以没有诸如系统101之类的嵌入式系统。计算机系统101将日志信息存储在文件200中,图2中示出了文件200的一个实例。在此实例中,文件200具有多个表项202a、202b...202n,其中n可以是任何正整数并表示可以根据特定的应用而变化的数字。例如,本文档来自技高网
...

【技术保护点】
一种遍历文件的方法,所述方法包括:读取在文件表项的第一端处的第一表项标记的第一文件表项大小部分;作为所述第一文件表项大小部分的函数来计算在所述文件表项的第二端处的第二表项标记的位置;判定在所述计算的位置处的文件数据是 否是第二表项标记;如果在所述计算的位置处的所述文件数据是第二表项标记,则将所述第一表项标记的所述第一表项大小部分与所述第二表项标记的第二文件表项大小部分进行比较;以及作为所述文件表项大小部分比较的功能,判定所述第一与第二表项 标记之间的所述文件数据是否是有效的表项。

【技术特征摘要】
US 2004-11-17 10/991,4451.一种遍历文件的方法,所述方法包括读取在文件表项的第一端处的第一表项标记的第一文件表项大小部分;作为所述第一文件表项大小部分的函数来计算在所述文件表项的第二端处的第二表项标记的位置;判定在所述计算的位置处的文件数据是否是第二表项标记;如果在所述计算的位置处的所述文件数据是第二表项标记,则将所述第一表项标记的所述第一表项大小部分与所述第二表项标记的第二文件表项大小部分进行比较;以及作为所述文件表项大小部分比较的功能,判定所述第一与第二表项标记之间的所述文件数据是否是有效的表项。2.根据权利要求1的方法,其中所述判定所述第一与第二表项标记之间的所述文件数据是否是有效的表项包括如果所述第一表项标记的所述第一表项大小部分与所述第二表项标记的所述第二文件表项大小部分匹配,则判定所述文件数据是有效的表项,并且如果所述第一表项标记的所述第一表项大小部分与所述第二表项标记的所述第二文件表项大小部分不匹配,则判定所述文件数据是无效的表项。3.根据权利要求1的方法,其中所述第二表项标记的判定包括标识所述标记的标记标识部分。4.根据权利要求1的方法,其中每个所述标记的所述标记标识部分是预定的代码。5.根据权利要求1的方法,还包括使用指向包含所述第一标记的至少一部分的文件数据的地址的指针来寻址所述文件的所述第一表项标记;以及其中所述第二表项标记位置的计算包括将所述指针递增或递减与所述第一表项文件大小部分一致的数量。6.根据权利要求1的方法,其中所述计算包括当以从所述文件的第一端到所述文件的第二端的第一方向遍历所述文件时递增所述指针,并且其中所述计算包括当以与所述第一方向相反的第二方向遍历所述文件时递减所述指针。7.根据权利要求1的方法,还包括如果所述第一与第二表项标记之间的所述文件数据被判定为是无效的表项,则作为所述第二文件表项大小部分的函数来计算第三表项标记的位置;判定在所述计算的位置处的文件数据是否是第三表项标记;如果在所述计算的位置处的文件数据是第三表项标记,则将所述第二表项标记的所述第二表项大小部分与所述第三表项标记的第三文件表项大小部分进行比较;作为所述第二与第三表项大小部分的所述比较的功能,判定所述第二与第三表项标记之间的文件数据是否是有效的表项。8.根据权利要求1的方法,还包括如果所述第一与第二表项标记之间的所述文件数据被判定为是无效的表项,则查找第三表项标记;将所述第二表项标记的所述第二表项大小部分与所述第三表项标记的第三文件表项大小部分进行比较;以及作为所述第二与第三表项大小部分的所述比较的功能,判定所述第二与第三表项标记之间的文件数据是否是有效的表项。9.一种将数据添加到文件的方法,所述方法包括确定将存储在文件表项中的数据的主体的大小;以及生成所述文件的文件表项,所述文件表项包括第一和第二表项标记以及在所述第一与第二标记之间的数据的所述主体,其中每个表项标记包括标识部分和是所述确定的数据主体大小的函数的文件表项大小部分。10.根据权利要求9的方法,其中表项标记的所述标识部分包括固定长度的十六进制串。11.根据权利要求10的方法,其中每个标记的所述标识部分串是相同的。12.根据权利要求10的方法,其中表项的每个标记的所述文件表项大小部分被布置成与关联表项的数据的主体相邻。13.一种系统,所述系统包括存储器,所述存储器适合于保存包括多个文件表项的文件,其中每个文件表项包括第一和第二表项标记以及在所述第一与第二标记之间的数据的主体,其中每个表项标记包括标识部分和是所确定的数据主体大小的函数的文件表项大小部分;以及控制器,所述控制器具有适合于执行以下操作的逻辑读取在文件表项的第一端处的第一表项标记的第一文件表项大小部分;作为所述第一文件表项大小部分的函数来计算在所述文件表项的第二端处的第二表项标记的位置;判定在所述计算的位置处的文件数据是否是第二表项标记;如果在所述计算的位置处的所述文件数据是第二表项标记,则将所述第一表项标记的所述第一表项大小部分与所述第二表项标记的第二文件表项大小部分进行比较;以及作为所述文件表项大小部分比较的功能,判定所述第一与第二表项标记之间的所述文件数据是否是有效的表项。14.根据权利要求13的系统,其中所述判定所述第一与第二表项标记之间的所述文件数据是否是有效的表项包括如果所述第一表项标记的所述第一表项大小部分与所述第二表项标记的所述第二文件表项大小部分匹配,则判定所述文件数据是有效的表项,并且如果所述第一表项标记的所述第一表项大小部分与所述第二表项标记的所述第二文件表项大小部分不匹配,则判定所述文件数据是无效的表项。15.根据权利要求13的系统,其中所述第二表项标记的判定包括标识所述标记的标记标识部分。16.根据权利要求13的系统,其中每个所述标记的所述标记标识部分是预定的代码。17.根据权利要求13的系统,其中所述控制器包括指针并且还适合于使用指向包含所述第一标记的至少一部分的文件数据的地址的所述指针来寻址所述文件的所述第一表项标记;以及其中所述第二表项标记位置的计算包括将所述指针递增或递减与所述第一表项文件大小部分一致的数量。18.根据权利要求13的系统,其中所述计算包括当以从所述文件的第一端到所述文件的第二端的第一方向遍历所述文件时递增所述指针,并且其中所述计算包括当以与所述第一方向相反的第二方向遍历所述文件时递减所述指针。19.根据权利要求13的系统,其中所述控制器还适合于如果所述第一与第二表项标记之间的所述文件数据被判定为是无效的表项,则作为所述第二文件表项大小部分的函数来计算第三表项标记的位置;判定在所述计算的位置处的文件数据是否是第三表项标记;如果在所述计算的位置处的文件数据是第三表项标记,则将所述第二表项标记的所述第二表项大小部分与所述第三表项标记的第三文件表项大小部分进行比较;作为所述第二与第三表项大小部分的所述比较的功能,判定所述第二与第三表项标记之间的文件数据是否是有效的表项。20.根据权利要求13的系统,其中所述控制器还适合于如果所述第一与第二表项标记之间的所述文件数据被判定为是无效的表项,则查找第三表项标记;将所述第二表项标记的所述第二表项大小部分与所述第三表项标记的第三文件表项大小部分进行比较;以及作为所述第二与第三表项大小部分的所述比较的功能,判定所述第二与第三表项标记之间的文件数据是否是有效的表项。21.一种系统,所述系统包括存储器,所述存储器适合于保存文件;以及控制器,所述控制器具有适合于执行以下操作的逻辑确定将存储在文件表项中的数据的主体的大小;以及生成所述文件的文件表项,所述文件表项包括第一和第二表项标记以及在所述第一与第二标记之间的数据的所述主体,其中每个表项标记包括标识部分和是所述确定的数据主体大小的函数的文件表项大小部分。22.根据权利要求21的系统,其中表项标记的所述标识部分包括固定长度的十六进制串。23.根据权利要求22的系统,其中每个标记的所述标识部分串是相同的。24.根据权利要求22的系统,其中表项的每个标记的所述文件表项大小部分被布置成与关联表项的数据的主体相邻。25.一件制品,所述制品包括允许由系统执行以便执行操作的代码,其中所述系统具有存储器,所述存储器适合于保存包括多个文件表项的文件,其中每个文件表项包括第一和第二表项标记以及在所述第一与第二标记之间的数据的主体,其中每个表项标记包括标识部分和是所确定的数据主体大小的函数的...

【专利技术属性】
技术研发人员:HP安德烈RG哈特霍恩宋正中
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1