私は単純なC++プログラムを持っています:
#include <iostream>
int main()
{
std::cout << "Hello\n";
return 0;
}
ARMプラットフォーム用のアプリケーションをコンパイルするために使用するクロスコンパイルプラットフォームである「scratchbox」で遊んでいました。NokiaN900電話で実行します。
いくつかのパフォーマンスの問題を調査しているときに、最初に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