Fuchsia 的 libc

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 也是动态链接器。