haiku/docs/user/posix/_libroot.dox
PulkoMandy 344ded80d4 ioctl: Document in Haiku book and in comments
- Convert libroot from a page to a group, so that it can list the
  included file and functions in the generated book (like the kits)
- Add unistd.dox and move the relevant part of ioctl details there
- Make sure to use C89-compatible comments only in POSIX headers

Change-Id: I8f0412e4c75de6f48018a0436909f8b0076342a4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6369
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
2024-11-18 17:12:04 +00:00

40 lines
1.6 KiB
Plaintext

/*
* Copyright 2019-2024 Haiku, Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Adrien Destugues, pulkomandy@pulkomandy.tk
*/
/*!
\defgroup libroot C, POSIX, GNU and BSD functions
Haiku implements a standard library containing the standard functions from C
(https://www.iso.org/standard/29237.html) and POSIX
(https://pubs.opengroup.org/onlinepubs/9699919799/). These functions are
available in libroot, which is linked in by default.
For convenience and POSIX compatibility, empty "m" and "pthread" libraries are
also provided, but the math and thread functions are also defined in libroot. However, this is
currently not the case for "rt" and "trace" (both also part of the standard libraries required
in POSIX).
The C library also contains a number of GNU and BSD extensions to the C and
POSIX standards. The BSD extensions are enabled by default unless a specific
version of the C standard is requested from the compiler command line (for
example by using the --std=c99 switch). In case you want to set the compiler
to strict C99 but still use these extensions, you need to define _DEFAULT_SOURCE
(with a \#define preprocessor directive, or from the command line).
The GNU extensions are not enabled by default, but can be enabled by defining
_GNU_SOURCE.
The GNU and BSD extensions are in a separate library, so the -lbsd linker flag
may be needed to use them.
On the other hand, network socket functions (socket, connect, bind, accept, ...) are provided in
a separate library, libnetwork.so. To use these functions you will need to use the -lnetwork
linker command line switch (instead of the POSIX specified -lxnet).
*/