如何查看库的内部(尤其是 C 标准库)?

How can I see the insides of a library (in particular the C standard library)?

我知道头文件有关于函数的基本数据和它们调用的类。这些函数的实际代码存储在另一个扩展名为 .dylib 的文件中。当我尝试在我的 MacBook 上摆弄命令行时,我遇到了一个包含所有 .dylib 文件的目录。我特别感兴趣的两个是 C 和 C++ 标准库。然而,用文本编辑器打开它们后,我得到的只是一堆无法解释的符号。我做了一些研究,发现所有 post 都提到这些文件已加密。他们为什么要加密图书馆?有没有办法查看这些库的内部?谢谢

首先 post 访问此站点,如果我不小心做了一些超出社区准则的事情,我深表歉意。我也是一个编程新手,我相信你可以看到。

它们未加密,它们是编译和链接的,在 mac 上以 mach-o 格式 ( https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/MachORuntime/ ),在其他平台上以其他格式。除非您想对事物进行逆向工程或进行 OS 开发,否则可能不值得学习太多。

一般情况下,你需要一个库的源代码才能看到里面的内容,除非你阅读了反汇编,这可能超出了本题的范围。

在 macosx 上使用的 C 和 C++ 标准库是开源的:

https://opensource.apple.com/source/Libc/

http://libcxx.llvm.org/

在类 unix 平台上,从源代码构建库通常是传统做法,但有一些 apple-only 库在 macosx 上没有源代码,例如 cocoa 和 quicktime 库。