一种网口状态信息的获取方法及装置制造方法及图纸

技术编号:15541100 阅读:150 留言:0更新日期:2017-06-05 10:40
本发明专利技术公开了一种网口状态信息的获取方法及装置,方法包括:在VxWorks操作系统中申请一块空闲的内存块,并通过memDevCreate方法把申请的内存转换成伪内存设备;利用IO接口打开伪内存设备以得到文件句柄,并通过任务重定向的方式把标准输出定向至文件句柄;调用ifconfig函数以将ifconfig函数的输出写入至伪内存设备;在伪内存设备中查找所需的网口状态信息。由此可见,本方法通过伪内存设备和任务重定向方式获取ifconfig的输出结果,不需要分析协议栈代码,简单易行;另外,所用到的函数都是VxWorks操作系统通用接口函数,可移植性好,可应用在所有VxWorks操作系统的版本上。

Method and device for acquiring network status information

The invention discloses a method and a device, a network state information acquisition method comprises: a memory block for free in the VxWorks operating system, and the application of memory into pseudo memory devices by memDevCreate method; use the IO interface to the memory device to open the pseudo file handle, and the task of redirection the standard output is directed to a file handle; call the ifconfig function to the output of the ifconfig function to write pseudo memory equipment; state information search in the pseudo memory device to network port. Thus, the output results of this method through ifconfig access memory devices and pseudo redirection task, do not require the analysis of protocol stack code, simple and easy; in addition, the function used is the universal interface function of VxWorks operating system, good portability, can be used in the VxWorks operating system version.

【技术实现步骤摘要】
一种网口状态信息的获取方法及装置
本专利技术涉及计算机
,特别是涉及一种网口状态信息的获取方法及装置。
技术介绍
VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分,该操作系统具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。VxWorks操作系统下的网口信息保存在网络协议栈里面,网络协议栈代码是非常复杂的。因此,VxWorks操作系统下网口的收发报文数量获取困难,其网口收发统计信息隐藏在系统很深的地方。目前,VxWorks操作系统下的网口监控方法就是研究协议栈代码,对每个VxWorks操作系统版本进行适配,找到协议栈里面存放流量统计、link状态的数据结构,并保存下来。由于需要研究网络协议栈代码,其中包括了很多协议栈的结构体、函数声明等,代码会非常复杂、难以理解,如果对协议栈代码理解不充分还容易出错;另外,VxWorks操作系统下的网口协议栈代码经历过多次大的改动,因此在某一个VxWorks操作系统版本下的代码并不能应用到其他版本,可移植性差。由此可见,在VxWorks操作系统下如何实现获取网口状态信息的通用性是本领域技术人员亟待解决的问题。
技术实现思路
本专利技术的目的是提供一种网口状态信息的获取方法及装置,用于在VxWorks操作系统下实现获取网口状态信息的通用性。为解决上述技术问题,本专利技术提供一种网口状态信息的获取方法,包括:在VxWorks操作系统中申请一块空闲的内存块,并通过memDevCreate方法把申请的所述内存转换成伪内存设备;利用IO接口打开所述伪内存设备以得到文件句柄,并通过任务重定向的方式把标准输出定向至所述文件句柄;调用ifconfig函数以将ifconfig函数的输出写入至所述伪内存设备;在所述伪内存设备中查找所需的网口状态信息。优选地,还包括:恢复任务重定向以将打印输出从所述伪内存设备定向回到所述标准输出。优选地,具体通过strstr函数查找所需的网口状态信息。优选地,所述网口状态信息具体包括网口的收发报文统计信息和link状态信息。优选地,所述内存块的存储空间为500字节。为解决上述技术问题,本专利技术提供一种网口状态信息的获取装置,包括:转换单元,用于在VxWorks操作系统中申请一块空闲的内存块,并通过memDevCreate方法把申请的所述内存转换成伪内存设备;任务重定向单元,用于利用IO接口打开所述伪内存设备以得到文件句柄,并通过任务重定向的方式把标准输出定向至所述文件句柄;写入单元,用于调用ifconfig函数以将ifconfig函数的输出写入至所述伪内存设备;查找单元,用于在所述伪内存设备中查找所需的网口状态信息。优选地,所述任务重定向单元,还用于恢复任务重定向以将打印输出从所述伪内存设备定向回到所述标准输出。优选地,所述查找单元具体通过strstr函数查找所需的网口状态信息。优选地,所述网口状态信息具体包括网口的收发报文统计信息和link状态信息。优选地,所述内存块的存储空间为500字节。本专利技术所提供的网口状态信息的获取方法及装置,该方法包括在VxWorks操作系统中申请一块空闲的内存块,并通过memDevCreate方法把申请的所述内存转换成伪内存设备;利用IO接口打开所述伪内存设备以得到文件句柄,并通过任务重定向的方式把标准输出定向至所述文件句柄;调用ifconfig函数以将ifconfig函数的输出写入至所述伪内存设备;在所述伪内存设备中查找所需的网口状态信息。由此可见,本方法通过伪内存设备和任务重定向方式获取ifconfig的输出结果,不需要分析协议栈代码,简单易行;另外,所用到的函数都是VxWorks操作系统通用接口函数,可移植性好,可应用在所有VxWorks操作系统的版本上。附图说明为了更清楚地说明本专利技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种网口状态信息的获取方法的流程图;图2为本专利技术实施例提供的另一种网口状态信息的获取方法的流程图;图3为本专利技术实施例提供的一种网口状态信息的获取装置的结构图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本专利技术保护范围。本专利技术的核心是提供一种网口状态信息的获取方法及装置,用于在VxWorks操作系统下实现获取网口状态信息的通用性。为了使本
的人员更好地理解本专利技术方案,下面结合附图和具体实施方式对本专利技术作进一步的详细说明。图1为本专利技术实施例提供的一种网口状态信息的获取方法的流程图。如图1所示,包括:S10:在VxWorks操作系统中申请一块空闲的内存块,并通过memDevCreate方法把申请的内存转换成伪内存设备。可以理解的是,本步骤中内存块必须是空闲的,即没有存储其它数据的内存块,以防止与后续存入的网口状态信息发生混乱。在具体实施中,申请的内存块是直接操作的,不能使用文件系统IO接口,本步骤中是通过memDevCreate方法将内存块转换为一个内存设备,从而可以使用文件系统的IO接口,例如open、read等函数进行读写操作。经过转换后的伪内存设备就像文件一样可以打开。S11:利用IO接口打开伪内存设备以得到文件句柄,并通过任务重定向的方式把标准输出定向至文件句柄。由于转换后的伪内存设备就像文件一样可以打开,因此,通过IO接口打开之后就得到了对应的文件句柄。本步骤中,通过任务重定向的方式将标准输出定向到文件句柄。重定向是指把命令或者可执行程序的标准输出或标准错误输出重新定向到指定文件中。这样,命令或程序的输出就不显示在串口(VxWorks操作系统下是打印到串口)上,而是写入到指定文件中,即伪内存设备对应的文件句柄中。任务重定向是指只重定向该任务,即该任务的输出不打印到串口,而是写到指定的文件,这里是指写到伪内存设备对应的文件句柄中。S12:调用ifconfig函数以将ifconfig函数的输出写入至伪内存设备。由于使用了任务重定向的方式,因此其他任务的输出还是会打印到串口,即不影响其他任务,也就是说其他任务的输出不会写到伪内存设备,不会往伪内存设备写入其他内容,伪内存设备内只会有ifocnfig命令的输出。比如,在VxWorks操作系统下输入ifconfig命令,那么在ifconfig就会输出一堆字符串在串口上,重定向后串口看不到输出,因为输出会写到指定的文件里面,打开文件就可以看到ifconfig命令的输出,在本实施例就是打开伪内存设备就可以看到ifconfig命令的输出。S13:在伪内存设备中查找所需的网口状态信息。由于ifconfig函数对应的输出就是网口状态信息,因此伪内存设备中就存储了全部的网口状态信息。用户可以根据实际需求,查找所需要的网口状态信息,例如,具体通本文档来自技高网
...
一种网口状态信息的获取方法及装置

【技术保护点】
一种网口状态信息的获取方法,其特征在于,包括:在VxWorks操作系统中申请一块空闲的内存块,并通过memDevCreate方法把申请的所述内存转换成伪内存设备;利用IO接口打开所述伪内存设备以得到文件句柄,并通过任务重定向的方式把标准输出定向至所述文件句柄;调用ifconfig函数以将ifconfig函数的输出写入至所述伪内存设备;在所述伪内存设备中查找所需的网口状态信息。

【技术特征摘要】
1.一种网口状态信息的获取方法,其特征在于,包括:在VxWorks操作系统中申请一块空闲的内存块,并通过memDevCreate方法把申请的所述内存转换成伪内存设备;利用IO接口打开所述伪内存设备以得到文件句柄,并通过任务重定向的方式把标准输出定向至所述文件句柄;调用ifconfig函数以将ifconfig函数的输出写入至所述伪内存设备;在所述伪内存设备中查找所需的网口状态信息。2.根据权利要求1所述的网口状态信息的获取方法,其特征在于,还包括:恢复任务重定向以将打印输出从所述伪内存设备定向回到所述标准输出。3.根据权利要求1所述的网口状态信息的获取方法,其特征在于,具体通过strstr函数查找所需的网口状态信息。4.根据权利要求1所述的网口状态信息的获取方法,其特征在于,所述网口状态信息具体包括网口的收发报文统计信息和link状态信息。5.根据权利要求1所述的网口状态信息的获取方法,其特征在于,所述内存块的存储空间为500字节。6.一种网口状态信息的获取装置,其特征在于,包...

【专利技术属性】
技术研发人员:刘永阳曹海浪蒋晓艳余万能
申请(专利权)人:中车株洲电力机车研究所有限公司
类型:发明
国别省市:湖南,43

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

1