# Fuchsia's libc

Fuchsia's libc started as a fork of musl libc. It has since diverged
significantly, but the approximate source code layout remains the same. The
source can be found in
[`zircon/third_party/ulib/musl`](/zircon/third_party/ulib/musl).

TODO(https://fxbug.dev/42106460) Type more here.

## Standards

### C11

Fuchsia's libc supports most of the [C11][c11std] standard. This
in particular includes the atomic and threading portions of the
standard library.

### POSIX

Fuchsia implements a subset of POSIX.

Things at least partially supported include the basics of POSIX I/O
(open/close/read/write/stat/...), and pthreads (threads and mutexes).

On Fuchsia, the portion of file paths beginning with a sequence of
`..` is resolved locally. See [this writeup][dotdot] for more
information.

Similarly, symlinks are not supported on Fuchsia.

Conspicuously not supported are UNIX signals, fork, and exec.

## FDIO

Fuchsia's libc does not directly support I/O operations. Instead it
provides weak symbols that another library can override. This is
typically done by [fdio.so][fdio].

## Linking

Statically linking libc is not supported. Everything dynamically links libc.so.

## Dynamic linking and loading

libc.so is also the dynamic linker.

[c11std]: https://en.wikipedia.org/wiki/C11_(C_standard_revision)
[dotdot]: /docs/concepts/filesystems/dotdot.md
[fdio]: /sdk/lib/fdio
