CN103034501A - 一种linux平台的函数调用方法及函数调用装置 - Google Patents
一种linux平台的函数调用方法及函数调用装置 Download PDFInfo
- Publication number
- CN103034501A CN103034501A CN201210572378XA CN201210572378A CN103034501A CN 103034501 A CN103034501 A CN 103034501A CN 201210572378X A CN201210572378X A CN 201210572378XA CN 201210572378 A CN201210572378 A CN 201210572378A CN 103034501 A CN103034501 A CN 103034501A
- Authority
- CN
- China
- Prior art keywords
- function
- call
- treatment
- unit
- call function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Exchange Systems With Centralized Control (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种linux平台的函数调用方法及函数调用装置,其中,一种linux平台的函数调用方法包括:建立单元建立待调用函数的函数名与发送单元的路径名的符号链接;获取单元获取所述待调用函数的调用信息,其中,所述待调用函数的调用信息包含:所述待调用函数的函数名;所述发送单元将获取的所述待调用函数的调用信息发送给调用单元,使得所述调用单元根据所述待调用函数的调用信息对所述待调用函数进行调用。本发明提供的技术方案能够有效提高在linux平台中对函数调用的灵活性和便利性。
Description
技术领域
本发明涉及嵌入式技术领域,尤其涉及一种linux平台的函数调用方法及函数调用装置。
背景技术
Linux是一种自由和开放源码的类Unix操作系统,随着Linux逐渐发展成熟,它的用户群正在不断扩大,并大举进入公司和企业计算机领域。
目前,在Linux平台中进行调试的方式主要是通过专用的上位机软件向下位机发送协议命令来调用相关的调试函数。由于专用的上位机软件需要针对下位机配套专门开发,开发成本较高且灵活性差,另外,在有些场合(如用户的上位机上不允许开发人员额外安装软件的场合)中,也不便于通过上位机软件调用相关的调试函数对Linux进行调试。
发明内容
本发明实施例提供了一种linux平台的函数调用方法及函数调用装置,用于降低开发成本,提高在linux平台中对函数调用的灵活性和便利性。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明第一方面提供一种linux平台的函数调用方法,包括:
建立单元建立待调用函数的函数名与发送单元的路径名的符号链接;
获取单元获取所述待调用函数的调用信息,其中,所述待调用函数的调用信息包含:所述待调用函数的函数名;
所述发送单元将获取的所述待调用函数的调用信息发送给调用单元,使得所述调用单元根据所述待调用函数的调用信息对所述待调用函数进行调用。
基于本发明第一方面,在第一种可能的实现方式中,
通过如下shell命令建立待调用函数的函数名的符号链接:
$ln-s所述发送单元的路径名待调用函数的函数名。
基于本发明第一方面,或者本发明第一方面的第一种可能的实现方式,
所述调用信息还包括:所述待调用函数的一个或者两个以上的执行参数。
本发明第二方面提供一种linux平台的函数调用装置,包括:
建立单元,获取单元,发送单元和调用单元;
所述建立单元用于建立待调用函数的函数名与发送单元的路径名的符号链接;
所述获取单元用于获取所述待调用函数的调用信息,其中,所述待调用函数的调用信息包含:所述待调用函数的函数名;
所述发送单元用于将所述获取单元获取的所述待调用函数的调用信息发送给所述调用单元;
所述调用单元用于根据所述发送单元发送的待调用函数的调用信息对所述待调用函数进行调用。
基于本发明第二方面,在第一种可能的实现方式中,
所述建立单元具体通过如下shell命令建立待调用函数的函数名的符号链接:
$ln–s所述发送单元的路径名待调用函数的函数名。
由上可见,本发明实施例中通过建立待调用函数的函数名的符号链接,通过获取包含函数名的调用信息即可实现对待调用函数的调用,一方面,本发明技术方案无需开发专门的上位机软件用于调试,降低了开发成本,另一方面,本发明技术方案能够应用于任何场合的linux平台中,且用户可以直接在操作界面输入调用信息来调用相应地函数,极大提高了在linux平台中对函数调用的灵活性和便利性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种linux平台的函数调用方法一个实施例流程示意图;
图2为本发明提供的一种linux平台的函数调用方法另一个实施例流程示意图;
图3为本发明提供的一种函数调用装置一个实施例结构示意图。
具体实施方式
本发明实施例提供了一种linux平台的函数调用方法及函数调用装置。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本发明实施例提供的一种linux平台的函数调用方法进行描述。请参阅图1,本发明实施例中的linux平台的函数调用方法包括:
101、建立单元建立待调用函数的函数名与发送单元的路径名的符号链接;
由于在linux平台中,linux自身无法提供在shell命令中直接输入函数名的方式实现对某个指定进程中的函数的调用,因此,本发明实施例中首先需要通过建立单元建立待调用函数的函数名与发送单元的路径名的符号链接。
具体地,建立单元可以通过如下shell命令建立待调用函数的函数名与发送单元的路径名的符号链接:$ln–s发送单元的路径名待调用函数的函数名。当然,建立单元也可以通过其它方式来建立待调用函数的函数名与发送单元的路径名的符号链接,如通过使用脚本对包含待调用函数的源文件进行扫描的方式来建立源文件中的各个待调用函数的函数名与发送单元的路径名的符号链接,此处不作限定。
需要说明的是,对于同一个待调用函数的函数名的多次调用,只需执行一次本步骤,即,上述建立待调用函数的函数名与发送单元的路径名的符号链接的步骤只需要在首次调用待调用函数的函数名时执行一次,当待调用函数的函数名与发送单元的路径名的符号链接完成建立后,除非发送单元的路径名或者待调用函数的函数名有所更改,否则可以直接跳过本步骤执行后续步骤。
102、获取单元获取上述待调用函数的调用信息;
其中,上述待调用函数的调用信息包含:上述待调用函数的函数名。
本发明实施例中,用户可以在shell界面中输入待调用函数的调用信息,以使获取单元获取上述待调用函数的调用信息。当然,获取单元也可以通过其它方式获取上述待调用函数的调用信息,如当linux平台中的某些进程需要调用到该待调用函数时,由需要调用到该待调用函数的进程将该待调用函数的调用信息发送给上述获取单元,此处不作限定。
进一步,由于某些待调用函数还可能包含一个或者多个执行参数,因此,上述调用信息还可以包括:上述待调用函数的一个或者两个以上的执行参数。
103、发送单元将获取的上述待调用函数的调用信息发送给调用单元,使得上述调用单元根据上述待调用函数的调用信息对上述待调用函数进行调用;
本发明实施例中,预先建立发送单元与调用单元之间的数据链路。由于步骤101建立了待调用函数的函数名与发送单元的路径名的符号链接,因此,当步骤102获取到包含待调用函数的函数名的调用信息时,发送单元将获取的上述待调用函数的调用信息发送给调用单元,使得上述调用单元根据上述待调用函数的调用信息对上述待调用函数进行调用。
需要说明的是,上述调用单元可以是主函数所在的进程,则上述待调用函数为上述主函数中的其中一个子函数,或者,上述调用单元也可以是linux平台中能够调用上述待调用函数的其它进程,此处不作限定。
由上可见,本发明实施例中通过建立待调用函数的函数名的符号链接,通过获取包含函数名的调用信息即可实现对待调用函数的调用,一方面,本发明技术方案无需开发专门的上位机软件用于调试,降低了开发成本,另一方面,本发明技术方案能够应用于任何场合的linux平台中,且用户可以直接在操作界面输入调用信息来调用相应地函数,极大提高了在linux平台中对函数调用的灵活性和便利性。
为便于更好地理解本发明技术方案,下面以一具体应用场景为本发明实施例中的linux平台的函数调用方法进行描述,本发明实施例中的调用单元为主函数所在的进程,待调用函数为主函数的其中一个子函数,假设待调用函数的函数名为CPFpgaSetReg,发送单元的路径名为vwDebug,请参与图2,本发明实施例中的linux平台的函数调用方法,包括:
201、建立单元建立CPFpgaSetReg与vwDebug的符号链接;
建立单元可以通过如下shell命令建立待调用函数的函数名与发送单元的路径名的符号链接:$ln–s vwDebug CPFpgaSetReg。
202、用户在shell界面输入CPFpgaSetReg以及执行参数Ox74和Ox1;
其中,用户可以在shell界面敲进如下命令来输入CPFpgaSetReg以及执行参数Ox74和Ox1:
$./CPFpgaSetReg Ox74Ox1
203、获取单元将获取到的待调用的函数名CPFpgaSetReg以及执行参数Ox74和Ox1传送给发送单元;
当步骤202用户在shell执行:$./CPFpgaSetReg Ox74Ox1时,shell中的argv数组的字符串分别如下:argv[0]等于CPFpgaSetReg,argv[1]等于Ox74,argv[2]等于Ox1,获取单元通过argv数组的字符串即可获得待调用的函数名CPFpgaSetReg以及执行参数Ox74和Ox1。
由于步骤201建立了CPFpgaSetReg和vwDebug的符号链接,获取单元根据符号链接的指向,将待调用的函数名CPFpgaSetReg以及执行参数Ox74和Ox1传送给发送单元。
204、发送单元将待调用的函数名CPFpgaSetReg以及执行参数Ox74和Ox1发送给调用单元;
发送单元通过预先建立好的数据链路,将argv数组的字符串,即待调用的函数名CPFpgaSetReg以及执行参数Ox74和Ox1发送给调用单元。
205、调用单元调用CPFpgaSetReg,并执行参数Ox74和Ox1。
由上可见,本发明实施例中通过建立待调用函数的函数名的符号链接,通过获取包含函数名的调用信息即可实现对待调用函数的调用,一方面,本发明技术方案无需开发专门的上位机软件用于调试,降低了开发成本,另一方面,本发明技术方案能够应用于任何场合的linux平台中,且用户可以直接在操作界面输入调用信息来调用相应地函数,极大提高了在linux平台中对函数调用的灵活性和便利性。
下面对本发明实施例中的一种linux平台的函数调用装置进行描述,请参阅图3,本发明实施例中的linux平台的函数调用装置300,包括:
建立单元301,获取单元302,发送单元303和调用单元304。
其中,建立单元301用于建立待调用函数的函数名与发送单元的路径名的符号链接;
具体地,建立单元301可以通过如下shell命令建立待调用函数的函数名与发送单元303的路径名的符号链接:$ln–s发送单元303的路径名待调用函数的函数名。当然,建立单元301也可以通过其它方式来建立待调用函数的函数名与发送单元303的路径名的符号链接,如通过使用脚本对包含待调用函数的源文件进行扫描的方式来建立源文件中的各个待调用函数的函数名与发送单元的路径名的符号链接,此处不作限定。
需要说明的是,对于同一个待调用函数的函数名的多次调用,只需在首次调用待调用函数的函数名时由建立单元301建立待调用函数的函数名与发送单元的路径名的符号链接,当待调用函数的函数名与发送单元的路径名的符号链接完成建立后,除非发送单元的路径名或者待调用函数的函数名有所更改,否则可以建立单元301可以不再执行建立上述待调用函数的函数名与发送单元的路径名的符号链接的动作。
获取单元302用于获取上述待调用函数的调用信息,其中,上述待调用函数的调用信息包含:上述待调用函数的函数名;
本发明实施例中,用户可以在shell界面中输入待调用函数的调用信息,以使获取单元302获取上述待调用函数的调用信息。当然,获取单元302也可以通过其它方式获取上述待调用函数的调用信息,如当linux平台中的某些进程需要调用到该待调用函数时,由需要调用到该待调用函数的进程将该待调用函数的调用信息发送给获取单元302,此处不作限定。
进一步,由于某些待调用函数还可能包含一个或者多个执行参数,因此,上述调用信息还可以包括:上述待调用函数的一个或者两个以上的执行参数。
发送单元303用于将获取单元302获取的上述待调用函数的调用信息发送给调用单元304;
本发明实施例中,预先建立发送单元303与调用单元304之间的数据链路。当获取单元302获取到包含待调用函数的函数名的调用信息时,发送单元303将获取的上述待调用函数的调用信息发送给调用单元304。
调用单元304用于根据发送单元303发送的待调用函数的调用信息对上述待调用函数进行调用。
需要说明的是,上述调用单元可以是主函数所在的进程,则上述待调用函数为上述主函数中的其中一个子函数,或者,上述调用单元也可以是linux平台中能够调用上述待调用函数的其它进程,此处不作限定。
需要说明的是,本发明实施例中的函数调用装置300中的各个功能单元可以如上述方法实施例中的相应的功能单元,可以用于实现上述方法实施例中的全部技术方案,其各个功能单元的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述实施例中的相关描述,此处不再赘述。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和单元并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以指令计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本发明所提供的一种linux平台的函数调用方法及函数调用装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (5)
1.一种linux平台的函数调用方法,其特征在于,包括:
建立单元建立待调用函数的函数名与发送单元的路径名的符号链接;
获取单元获取所述待调用函数的调用信息,其中,所述待调用函数的调用信息包含:所述待调用函数的函数名;
所述发送单元将获取的所述待调用函数的调用信息发送给调用单元,使得所述调用单元根据所述待调用函数的调用信息对所述待调用函数进行调用。
2.根据权利要求1所述的方法,其特征在于,通过如下shell命令建立待调用函数的函数名的符号链接:
$ln–s所述发送单元的路径名待调用函数的函数名。
3.根据权利要求1或2所述的方法,其特征在于,
所述调用信息还包括:所述待调用函数的一个或者两个以上的执行参数。
4.一种linux平台的函数调用装置,其特征在于,包括:
建立单元,获取单元,发送单元和调用单元;
所述建立单元用于建立待调用函数的函数名与发送单元的路径名的符号链接;
所述获取单元用于获取所述待调用函数的调用信息,其中,所述待调用函数的调用信息包含:所述待调用函数的函数名;
所述发送单元用于将所述获取单元获取的所述待调用函数的调用信息发送给所述调用单元;
所述调用单元用于根据所述发送单元发送的待调用函数的调用信息对所述待调用函数进行调用。
5.根据权利要求4所述的函数调用装置,其特征在于,所述建立单元具体通过如下shell命令建立待调用函数的函数名的符号链接:
$ln-s所述发送单元的路径名待调用函数的函数名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210572378.XA CN103034501B (zh) | 2012-12-25 | 2012-12-25 | 一种linux平台的函数调用方法及函数调用装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210572378.XA CN103034501B (zh) | 2012-12-25 | 2012-12-25 | 一种linux平台的函数调用方法及函数调用装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103034501A true CN103034501A (zh) | 2013-04-10 |
CN103034501B CN103034501B (zh) | 2016-08-03 |
Family
ID=48021427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210572378.XA Expired - Fee Related CN103034501B (zh) | 2012-12-25 | 2012-12-25 | 一种linux平台的函数调用方法及函数调用装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103034501B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050081A (zh) * | 2014-06-09 | 2014-09-17 | 汉柏科技有限公司 | 调试静态库函数的方法及系统 |
CN104915221A (zh) * | 2014-03-14 | 2015-09-16 | 深圳市鑫龙上通讯科技有限公司 | 一种用于手机驱动的驱动方法 |
CN110399343A (zh) * | 2019-07-05 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 一种文件删除方法、系统、装置及计算机可读存储介质 |
CN113297432A (zh) * | 2021-06-01 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 用于分区拆分与合并的方法、处理器可读介质和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1963782A (zh) * | 2006-11-28 | 2007-05-16 | 北京中星微电子有限公司 | 嵌入式文件系统的测试方法及系统 |
CN101021804A (zh) * | 2007-03-13 | 2007-08-22 | 华为技术有限公司 | 调用动态库的方法、装置及动态库服务器 |
US20070250827A1 (en) * | 2006-04-20 | 2007-10-25 | Kabushiki Kaisha Toshiba | Apparatus for supporting program development, and operation method for the apparatus |
-
2012
- 2012-12-25 CN CN201210572378.XA patent/CN103034501B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070250827A1 (en) * | 2006-04-20 | 2007-10-25 | Kabushiki Kaisha Toshiba | Apparatus for supporting program development, and operation method for the apparatus |
CN1963782A (zh) * | 2006-11-28 | 2007-05-16 | 北京中星微电子有限公司 | 嵌入式文件系统的测试方法及系统 |
CN101021804A (zh) * | 2007-03-13 | 2007-08-22 | 华为技术有限公司 | 调用动态库的方法、装置及动态库服务器 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915221A (zh) * | 2014-03-14 | 2015-09-16 | 深圳市鑫龙上通讯科技有限公司 | 一种用于手机驱动的驱动方法 |
CN104050081A (zh) * | 2014-06-09 | 2014-09-17 | 汉柏科技有限公司 | 调试静态库函数的方法及系统 |
CN104050081B (zh) * | 2014-06-09 | 2017-09-12 | 汉柏科技有限公司 | 调试静态库函数的方法及系统 |
CN110399343A (zh) * | 2019-07-05 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 一种文件删除方法、系统、装置及计算机可读存储介质 |
CN113297432A (zh) * | 2021-06-01 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 用于分区拆分与合并的方法、处理器可读介质和系统 |
CN113297432B (zh) * | 2021-06-01 | 2023-11-07 | 阿里巴巴新加坡控股有限公司 | 用于分区拆分与合并的方法、处理器可读介质和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103034501B (zh) | 2016-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100555218C (zh) | 用于改善片上仿真系统中高级语言的仿真速度的装置和方法 | |
KR102059705B1 (ko) | 적응식 이식가능 라이브러리 | |
CN108376073B (zh) | 一种测试软件包生成方法及终端 | |
JP6412276B2 (ja) | 仮想マシン作成方法及び装置 | |
CN103488466A (zh) | 用于执行应用程序的方法和装置 | |
CN104932972B (zh) | 一种反动态调试应用程序的方法及装置 | |
CN103838584A (zh) | 一种移动终端应用的开发方法及装置 | |
CN105975816A (zh) | 移动终端下基于虚拟技术的代码保护方法及系统 | |
CN103034501A (zh) | 一种linux平台的函数调用方法及函数调用装置 | |
CN104298602A (zh) | 一种调试应用程序的方法及装置 | |
CN111338925A (zh) | 小程序测试方法及装置、系统、电子设备和存储介质 | |
CN107704499A (zh) | 一种应用程序的页面跳转控制方法及装置 | |
CN104598267B (zh) | 应用的调起方法及装置 | |
CN106055375A (zh) | 应用程序安装方法及装置 | |
CN112035112A (zh) | 应用程序开发方法、系统、介质和电子设备 | |
CN103744656A (zh) | 一种数据解析方法及装置 | |
CN111830390B (zh) | 一种测试方法及相关产品 | |
CN103631585A (zh) | 一种用于开发应用程序的方法及系统 | |
CN102681861A (zh) | 安装软件的方法和装置 | |
CN111385661B (zh) | 语音控制全屏播放的方法、装置、终端及存储介质 | |
CN112612474A (zh) | 产品移植方法、装置、存储介质和电子设备 | |
CN109460280A (zh) | 运行程序的方法、终端 | |
CN102298446B (zh) | 一种多鼠标/键盘模拟装置 | |
CN106446110A (zh) | 一种终端搬家连接安全性的实现方法及装置 | |
CN105528292A (zh) | 一种基于内核模块的内核单元测试方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Kezhu road high tech Industrial Development Zone, Guangzhou city of Guangdong Province, No. 233 510670 Patentee after: VTRON GROUP Co.,Ltd. Address before: 510663 Guangzhou province high tech Industrial Development Zone, Guangdong, Cai road, No. 6, No. Patentee before: VTRON TECHNOLOGIES Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160803 Termination date: 20211225 |