在运行时,getaddrinfo(“localhost”)将打开/etc/resolv.conf,这很奇怪! 我甚至发现gcc静态链接的可执行文件将包含硬编码字符串,如/etc/resolv.conf,这真可怕吗?
localhost:tmp macq$ strings node.armv5.static |grep /etc
// Test: ./node test/fixtures/echo.js < /etc/passwd
/etc/egd-pool
/etc/entropy
/etc/ssl/private
/etc/ssl
/etc/ssl/certs
/etc/ssl/cert.pem
/etc/hosts
/etc/resolv.conf
/etc/nsswitch.conf
/etc/host.conf
/etc/svc.conf
/etc/localtime
/etc/gai.conf
/etc/ld.so.cache
/etc/ld.so.nohwcap
/etc/suid-debug
/etc/mtab
我只是想知道这个警告的来源和getaddrinfo的逻辑。
我认为它来自libgcc,但是我检查了gcc 4.4,4.5的源代码,没有找到这样的错误字符串模式,事件未找到getaddrinfo实现。我找不到ld(colloect2)的来源。
gcc中getaddrinfo的来源在哪里? libnss_files.so的来源在哪里?
编辑: 谢谢大家。我现在改变了标题,谁可以告诉我getaddrinfo之类的实现的源代码,它们似乎不在libc中。