Fuchsia 的 libc 作为 musl libc 的分支启动。此后,其区别很大,但大致的源代码布局保持不变。源代码可以在 zircon/third_party/ulib/musl
中找到。
TODO(https://fxbug.dev/42106460) 在此处输入更多内容。
标准
C11
Fuchsia 的 libc 支持大多数 C11 标准。具体包括标准库的原子和线程部分。
POSIX
Fuchsia 实现了 POSIX 的子集。
至少部分支持的功能包括 POSIX I/O 的基础知识(open/close/read/write/stat/...)和 pthread(线程和互斥)。
在 Fuchsia 上,以一系列 ..
开头的文件路径部分在本地解析。如需了解详情,请参阅这篇文章。
同样,Fuchsia 也不支持符号链接。
UNIX 信号、Fork 和 exec 显然不受支持。
FDIO
Fuchsia 的 libc 不直接支持 I/O 操作。而是提供其他库可以替换的弱符号。这通常由 fdio.so 完成。
正在关联
不支持静态链接 libc。所有内容都会动态链接 libc.so。
动态链接和加载
libc.so 也是动态链接器。