我有一个简单的 C++ 程序:
#include <iostream>
int main()
{
std::cout << "Hello\n";
return 0;
}
我在玩“scratchbox”——我用来为 ARM 平台编译应用程序的交叉编译平台。我在诺基亚 N900 手机上运行它。
在调查一些性能问题时,我注意到一开始有几个对 strcmp() 的调用。我使用“ltrace”来跟踪库调用,当我在目标(我的手机)上运行它时,看到一系列对 strcmp() 的调用,这让我很好奇——这些调用的目的是什么?
20:06 user@MaemoBox:~$ ltrace test
__libc_start_main(61732, 1, 0xbed66634, 345616, 345612 <unfinished ...>
__errno_location() = 0x4001d3b0
strrchr("test", '/') = NULL
getuid() = 29999
bsearch("test", 0x00055966, 146, 1, 0x0000ed38 <unfinished ...>
strcmp("test", "mv") = 7
strcmp("test", "sort") = 1
strcmp("test", "tr") = -13
strcmp("test", "sysctl") = 1
strcmp("test", "test") = 0
<... bsearch resumed> ) = 0x000559e2