提问人:BPP-DEV 提问时间:9/22/2023 更新时间:9/22/2023 访问量:73
列出 C 语言中所有可用的函数
List all available Functions in C
问:
我想为另一种编程语言创建绑定,由于有数百个函数,我想知道如何通过自动化来提高效率。
这意味着我想要一个头文件中所有函数的列表,其中包含数据类型和返回类型,如下所示:
void myfunction1(int)
void myfubction2()
void myfunction3(string, string)
....
我已将“glad.h”(仅标头库)导入到我的 Main 中。不幸的是,这个库只绑定了系统函数,这意味着我无法从头文件中提取它们。现在我想知道是否有可以在 Main 中调用的 C 函数,它为我提供了我想要的东西,即所有当前导入函数的列表,如所述。
有没有办法做到这一点,例如使用 relection 或 sth。
我试图找出一个解决方案+我试图从文档中给chatgpt一个html列表,以提取func名称,但该列表没有定义()和returntype,这意味着我会手动复制数百个函数,看看它们采用什么类型和参数......等等。
答:
0赞
Misha T
9/22/2023
#1
如果你有 Doxygen 生成的 doumentation URL,你可以使用脚本:
mkdir tmp;
cd tmp;
wget -r <Documentation URL Root> -L <Documentation URL Root>;
for F in $(find . -name \*.html); do cat $F | grep '<tr class="memitem:' | sed -e 's/<tr[^>]*>//g' | sed -e 's/ / /g' | sed -e 's/ / /g' | sed -e 's/<td[^>]*>//g' | sed -e 's/<a[^>]*>//g' | sed -e 's/<\/tr>//g' | sed -e 's/<\/td>//g' | sed -e 's/<\/a>//g' | sed -e 's/$/;/' | egrep '\(.*\)' >> library_functions.h; done
您不会通过此脚本获取类型定义,并且会有一些垃圾
针对 libnl 进行了测试,网址:http://www.infradead.org/~tgr/libnl/doc/api/
评论