gpt4 book ai didi

c - busybox 是否以共享库形式提供?

转载 作者:IT王子 更新时间:2023-10-29 00:52:18 33 4
gpt4 key购买 nike

busybox 是否以共享库形式提供?我想以编程方式使用单个应用程序,而不是使用 system()。我听说过 libbusybox 和 libbb,但找不到任何文档。

最佳答案

存在名为 libbusybox(.so) 的共享形式的 busybox 库,你只需要在制作 menuconfig 时启用它。编译后,它将在 0_lib 中可用文件夹。在这个库中,你有一个很好的小函数,叫做 int lbb_main(char **argv) .

你需要在你的代码中做的是这样的:

extern int lbb_main(char **argv);

int main()
{
char* strarray[] = {"ifconfig",0};
lbb_main(strarray);

return 1;
}

您可以导入 libb.h ,但这对我不起作用,因为我遇到了很多错误。

之后你只需要使用像gcc -o code code.c -Lpath_to_0_lib_fodler -lbusybox这样的东西来编译就是这样!

要拦截输出,您必须重新定义 printf 和类似的调用,但这显然可以通过使用像 #define printf(...) code' in 这样的宏来实现。 libb.h'.

您甚至可以生成不使用 fork 或 system 的 busybox 的 shell,但这还不能很好地工作。

关于c - busybox 是否以共享库形式提供?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3535825/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com