我正在查看 android shell 的源代码 reboot 命令。
int reboot_main(int argc, char *argv[])
- 我不清楚的是,如果这是一个独立的二进制文件,谁会调用reboot_main()?
- 在标准 glibc 链接二进制文件中,我希望找到一个“main()”作为程序的入口点。
我在这里缺少什么,有人可以帮助我了解发生了什么吗?
谢谢, vj
最佳答案
它们都被编译成一个整体可执行文件,main
位于 https://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
。
关于Android 重启命令 - 谁调用reboot_main()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19826885/