2017-06-02 56 views
0

我有多个files.How源代码用c程序如何使用C编程

+2

首先,可执行文件根本不包含任何源代码。如果它没有附加任何调试信息,那么您甚至无法获取有关函数和源文件位置的信息。可执行文件或共享库中的代码只是一个或多个二进制blob。 –

+0

@Someprogrammerdude \t 我可以使用文件和函数指针以及类似于符号表的结构,以便我可以在特定文件中动态调用特定函数 –

+0

@MartinSebastian如果您可以将源代码编译为共享库,那么它就是很容易查找函数并使用[dlopen和dlsym](http://man7.org/linux/man-pages/man3/dlopen.3.html)调用它们。查看该手册页中的示例。 –

回答

2

如何提取提取自Elf文件&功能细节提取自Elf文件中的所有用户定义的函数文件&来自elf使用c程序的功能细节。

这需要非平凡的编程量。有库可以帮助:libelflibdwarf。或者你可以阅读readelf的来源。

+0

我可以使用文件和函数指针以及类似于符号表的结构,以便我可以在特定文件中动态调用特定函数 –

+0

@MartinSebastian您的评论没有意义。如果你有一个函数指针,*当然*你可以调用它 - 这是一个函数指针*是* - 你可以调用的东西。 –

+0

我确实有这样一个结构struct { char * filename; char * funcname; int(* funcptr)(); } symtab [] = { {“filename1”,“one_func”,one_func}, {“filename2”,“two_func”,two_func}, };和上面的符号表。我需要检查函数表中的任何文件中是否存在特定函数并执行该函数 –