0

我正在查看 android shell reboot命令的源代码。

int reboot_main(int argc, char *argv[])
  • 我不清楚的是,如果这是一个独立的二进制文件,谁会调用 reboot_main() ?
  • 在标准的 glibc 链接二进制文件中,我期待找到一个“main()”作为程序的入口点。

我在这里错过了什么,有人可以帮助我了解发生了什么吗?

谢谢,vj

4

1 回答 1

1

它们都被编译成一个整体的可执行文件,mainhttps://android.googlesource.com/platform/system/core.git/+/android-4.2.2_r1/toolbox/toolbox.c

然后,根据调用的实际程序名称(通常argv[0])调用适当的方法。

这些命令是构建的一部分,通过

#define TOOL(name) int name##_main(int, char**);

toolbox.c文件中使用的宏Android.mk来生成tools.h.

于 2013-11-07T02:33:43.770 回答