我想知道这里的任何人是否可以帮助我更好地理解OSX和C之间的关系。在xcode中有一些与C ++相关的开发人员信息,但对C来说却没有。
我认为一个根本区别是osx使用libc而不是glibc。任何人都能指出我的libc文档吗?我似乎找不到任何东西。
我已经看过usr / includes文件夹,但所有这一切让我想知道我在哪里可以获得一个参考,阐明了我可以使用的所有选项。例如,我刚发现<tree.h>
。这一切都很好,但有没有任何文件?或者我是否需要搜索包含文件夹?
答案 0 :(得分:0)
有点不清楚你在问什么。
OS X基于FreeBSD,它是一个兼容POSIX的UNIX操作系统。 OS X和C之间的关系是C是许多编程语言中的一种,您可以编写这些语言来为平台开发(C是Objective-C的核心,这是Apple所支持的未使用的语言)。
OS X 不使用libc。 clang是作为Apple OS X开发人员工具包的一部分提供的编译器,它使用libc。有区别。如果你想使用glib,从Homebrew或Macports中获取GCC并用它来编译你的程序而不是clang。
最后,您找不到libc的文档,因为所有C库(如libc,glibc等)都提供相同的功能集(如果它们符合标准)。在不同的C库之间,最终用户之间的差异往往很小;因此,如果您想了解一个头文件,请使用man
,例如:man clang
来阅读clang文档。
希望这有帮助。
答案 1 :(得分:0)
您似乎在询问OSX作为程序员提供给您的功能是否与其他* nix系统有所不同;专注于OSX实施C标准库为您提供的功能。
现在请记住,虽然C标准库是利用操作系统内核公开的功能的一种非常常见的方式,但它并不是唯一的方法。您可以使用其他低级库,也可以自己编写低级函数。
话虽如此,请考虑以下事项:
libc
,glibc
还是使用C标准库的其他实现,这都是您可以信赖的内容。sys/tree.h
标题是“红黑树和Splay树的实现” - 绝不是Linux系统上无法实现的东西!总结一下:
BSD libc
的C标准库实现,它在POSIX标准定义的基础上提供了一些额外的标题。所以您的问题可以分为:
glibc
和BSD libc
之间的区别是什么?和