小编Ale*_*nov的帖子

一系列strcmp()在简单的C++程序开始时调用

我有简单的C++程序:

#include <iostream>

int main()
{
        std::cout << "Hello\n";
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

我想你不能变得更简单.我正在玩"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
Run Code Online (Sandbox Code Playgroud)

谢谢.

c++ linux gcc re-engineering ltrace

4
推荐指数
1
解决办法
508
查看次数

标签 统计

c++ ×1

gcc ×1

linux ×1

ltrace ×1

re-engineering ×1