Существует библиотека busybox в общей форме, которая называется libbusybox(.so)
, вам просто нужно включить ее при создании 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 '.
Вы можете даже создать оболочку busybox, которая не использует fork или system, но не работает хорошоеще.