文件描述符检测方法及设备技术

技术编号:32650308 阅读:16 留言:0更新日期:2022-03-17 10:55
本公开实施例提供一种文件描述符检测方法及设备,所述方法包括:在检测到文件描述符关闭操作时,获取文件描述符关闭操作对应的待关闭文件描述符以及待关闭文件描述符对应的关闭动态链接库的信息,并确定待关闭文件描述符对应的创建动态链接库的信息。在确定关闭动态链接库的信息与创建动态链接库的信息不匹配时,上报文件描述符错误关闭信息,并关闭文件描述符,实现错误关闭的文件描述符自动准确检测,并将错误关闭的文件描述符对应的文件描述符错误关闭信息进行上报,以使相关开发人员根据检测到的错误关闭的文件描述符对应用程序进行调试,降低应用程序出现崩溃或异常的风险,从而提高程序的用户体验。从而提高程序的用户体验。从而提高程序的用户体验。

【技术实现步骤摘要】
文件描述符检测方法及设备


[0001]本公开实施例涉及计算机
,尤其涉及一种文件描述符检测方法及设备。

技术介绍

[0002]文件描述符是内核为了高效管理已被打开的文件所创建的索引,用于指向被打开的文件。
[0003]目前,在应用程序运行时,可能会加载多个动态链接库。在加载动态链接库的过程中,当该动态链接库打开文件时,内核会创建该文件对应的文件描述符,则可以将该动态链接库作为创建该文件描述符的动态链接库。当该动态链接库关闭该文件时,会通过关闭相应的文件描述符来关闭。由于文件描述符在进程中是全局可访问,因此,关闭文件描述符的动态链接库可能与创建该文件描述符对应的动态链接库不同,导致出现文件描述符错误关闭的问题,从而造成应用程序运行出现崩溃或异常问题。
[0004]因此,为了降低应用程序运行出现崩溃或异常的风险,亟需一种检测文件描述符错误关闭的方法以使相关开发人员根据检测到的错误关闭的文件描述符对应用程序进行调试,降低应用程序出现崩溃或异常的风险,从而提高程序的用户体验。

技术实现思路

[0005]本公开实施例提供一种文件描述符检测方法及设备,以实现错误关闭的文件描述符的检测。
[0006]第一方面,本公开实施例提供一种文件描述符检测方法,包括:
[0007]在检测到文件描述符关闭操作时,获取所述文件描述符关闭操作对应的待关闭文件描述符以及所述待关闭文件描述符对应的关闭动态链接库的信息,并确定所述待关闭文件描述符对应的创建动态链接库的信息;
[0008]在确定所述关闭动态链接库的信息与所述创建动态链接库的信息不匹配时,上报文件描述符错误关闭信息,并关闭所述待关闭文件描述符。
[0009]第二方面,本公开实施例提供一种文件描述符检测设备,包括:
[0010]信息获取模块,用于在检测到文件描述符关闭操作时,获取所述文件描述符关闭操作对应的待关闭文件描述符以及所述待关闭文件描述符对应的关闭动态链接库的信息,并确定所述待关闭文件描述符对应的创建动态链接库的信息;
[0011]处理模块,用于在确定所述关闭动态链接库的信息与所述创建动态链接库的信息不匹配时,上报文件描述符错误关闭信息,并关闭所述待关闭文件描述符。
[0012]第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器。
[0013]所述存储器存储计算机执行指令。
[0014]所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的文件描述符检测方法。
[0015]第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介
质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的文件描述符检测方法。
[0016]本实施例提供的文件描述符检测方法及设备,该方法包括在检测到文件描述符关闭操作时,获取文件描述符关闭操作对应的待关闭文件描述符以及待关闭文件描述符对应的关闭动态链接库的信息,并确定待关闭文件描述符对应的创建动态链接库的信息。在确定关闭动态链接库的信息与创建动态链接库的信息不匹配时,上报文件描述符错误关闭信息,并关闭文件描述符。本实施例通过在应用程序运行或启动的过程中,若检测到文件描述符关闭操作,表明存在动态链接库关闭相应的文件描述符,即该文件描述符为待关闭文件描述符,该动态链接库为该待关闭文件描述符对应的关闭动态链接库,则获取该动态链接库的信息,以得到该待关闭文件描述符对应的关闭动态链接库的信息,并获取该待关闭文件描述符对应的创建动态链接库的信息,即获取与创建该待关闭文件描述符相关的动态链接库的信息,确定关闭动态链接库的信息与创建动态链接库的信息是否匹配以确定该待关闭文件描述符对应的关闭动态链接库和创建动态链接库是否为同一个动态链接库,在确定两者信息不匹配时,表明待关闭文件描述符对应的关闭动态链接库和创建动态链接库不为同一个动态链接库,即创建该待关闭文件描述符的动态链接库与关闭该待关闭文件描述符的动态链接库不同,则确定该文件描述符关闭操作为错误的文件描述符关闭操作,即该待关闭文件描述符为错误关闭的文件描述符,实现错误关闭的文件描述符自动准确检测,并将错误关闭的文件描述符对应的文件描述符错误关闭信息进行上报,以使相关开发人员根据检测到的错误关闭的文件描述符对应用程序进行调试,降低应用程序出现崩溃或异常的风险,从而提高程序的用户体验。
附图说明
[0017]为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0018]图1为本公开实施例提供的文件描述符检测方法的场景示意图;
[0019]图2为本公开实施例提供的文件描述符检测方法的流程示意图一;
[0020]图3为本公开实施例提供的文件描述符检测方法的流程示意图二;
[0021]图4为本公开实施例提供的电子设备与用户终端通信的示意图;
[0022]图5为本公开实施例提供的文件描述符检测设备的结构框图;
[0023]图6为本公开实施例提供的电子设备的硬件结构示意图。
具体实施方式
[0024]为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0025]参见图1,图1为文件描述符检测的场景示意图。如图1所示,应用程序1启动或运行
过程中,可能会调用多个动态链接库(so),例如,应用程序1需要调用动态链接库1和动态链接库2。在调用动态链接库1过程中,需要打开文件1,此时,应用程序1所在的电子设备中的处理器,即内核创建文件1所对应的文件描述符1,该文件描述符1指向该文件1,在后续操作文件1时,可以通过该文件描述符1进行操作。由于进程对应的文件描述符是全局共享的,因此,在调用动态链接库2的过程中,动态链接库库2也可以访问该文件描述符1。当动态链接库2需关闭文件1时,可以通过操作文件描述符1进行关闭,并且内核也会关闭该文件描述符1。但由于与关闭文件描述符1相关的动态链接库2,即文件描述符1对应的关闭动态链接库,与创建文件描述符1相关的动态链接库1,即文件描述符1对应的创建动态链接库并不是同一个动态链接库,导致出现文件描述符错误关闭的问题,从而可能造成应用程序运行出现崩溃或异常问题。因此,为了降低应用程序运行出现崩溃或异常的风险,亟需一种检测文件描述符错误关闭的方法以使相关开发人员根据检测到的错误关闭的文件描述符对应用程序进行调试,降低应用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件描述符检测方法,其特征在于,包括:在检测到文件描述符关闭操作时,获取所述文件描述符关闭操作对应的待关闭文件描述符以及所述待关闭文件描述符对应的关闭动态链接库的信息,并确定所述待关闭文件描述符对应的创建动态链接库的信息;在确定所述关闭动态链接库的信息与所述创建动态链接库的信息不匹配时,上报文件描述符错误关闭信息,并关闭所述待关闭文件描述符。2.根据权利要求1所述的方法,其特征在于,所述关闭动态链接库的信息包括关闭动态链接库的标识,所述创建动态链接库的信息包括创建动态链接库的标识,则所述方法还包括:确定所述关闭动态链接库的标识和所述创建动态链接库的标识是否相同;若所述关闭动态链接库的标识和所述创建动态链接库的标识相同,则确定所述关闭动态链接库的信息与所述创建动态链接库的信息匹配;若所述关闭动态链接库的标识和所述创建动态链接库的标识不相同,则确定所述关闭动态链接库的信息与所述创建动态链接库的信息不匹配。3.根据权利要求1所述的方法,其特征在于,所述确定所述待关闭文件描述符对应的创建动态链接库的信息,包括:获取文件描述符记录表,其中所述文件描述符记录表包括至少一个文件描述符以及所述文件描述符对应的创建动态链接库;从所述文件描述符记录表中获取与所述待关闭文件描述符相同的目标文件描述符,并将所述目标文件描述符对应的创建动态链接库作为所述待关闭文件描述符对应的创建动态链接库。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:在确定所述关闭动态链接库的信息与所述创建动态链接库的信息匹配时,从所述文件描述符记录表中的删除所述目标文件描述及其对应的创建动态链接库,并关闭所述待关闭文件描述符。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:在检测到应用程序启动时,获取所述应用程序对应的所有动态链接库及每个动态链接库对应的描述符创建关联函数;对于每个描述符创建关联函数,获取所述描述符创建关联函数对应的创建代理函数,并将所述描述符创建关联函数替换为其对应的创建代理函数。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:在确定应用程序启动或处于运行过程中时,若确定所述应用程序对应的动态链接库中存在首次调用的动态链接库,则获取所述首次调用的动态链接库对应的描述符创建关联函数;对于每个描述符创建关联函数,获取所述描述符创建关联函数对应的创建代理函数,并将所述描述符创建关联函数替换为其对应的创建代理函数。7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:在确定存在动态链接库调用创建代理函数时,根据所述代理函数创建新的文件描述符,并将所述动态链接库作为所述新的文件描述符对应的创建动态链接库;
获取所述新的文件描述符对应的创建动态链接库的信息,并将所述新的文件描述符及其对应的创建动态链接库的信息添加至文件描述符记录表中。8.根据权利要求1所述的方法,其特征在于,所述方法还包括:在检测到应用程序启动时,获取应...

【专利技术属性】
技术研发人员:韩立
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:

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

1