2 Copyright © 2013, The AROS Development Team. All rights reserved.
4 This file is there to provide a background section in the Autodocs
8 /*******************************************************************************
14 On AROS standardized C interfaces are implemented with a few shared
15 libraries. A distinction is made between a standard ANSI-C/ISO-C
16 part and a POSIX emulation layer.
17 Here the ANSI-C/ISO-C part is documented.
19 The ANSI-C/ISO-C part is implemented by the stdc.library and the
20 stdcio.library shared libraries. The former implements the part that
21 only depends on exec.library; the latter the parts that depends on
22 other libraries like dos.library and contains mostly I/O related
24 Currently both libraries are disk based but the plan is in the future
25 put stdc.library in ROM and be initialized right after exec so that
26 all modules, also those in ROM can use it. stdcio.library will likely
28 Purpose of these libraries is to provide a base implementation that
29 can be used by compilers. Compilers are free to override functions
30 with their own implementation.
32 The reference used for the developing the two libraries is the ISO/IEC
33 standard document ISO/IEC 9899:1999 also known as C99. Not all functions
34 are implemented but for each function defined in the standard a place
35 in the library is reserved. The order of the functions in the library
36 lookup table is based on the order that they are defined in the standard
39 Not all functions are implemented. Not implemented functions either
40 are not available in the library at all or just a stub function is
41 provided. The latter can be used to get programs running without having
42 a proper implementation of a function. Of course target should be to
43 have in the end all functions implemented.
44 Consult the include files and the autodocs to see which functions are
45 not (fully) implemented.
47 The include files provided for the C99 code implement a proper
48 separation of the include files. The includes should only define the
49 prototypes as defined by the standard. This means includes like
50 proto/stdc.h or proto/stdcio.h should not be included in the standard
51 C99 include files. Developers improving or extending these libraries
52 should keep this in mind.
54 In order to use the stdc.library programs need to properly initialize
55 the library using the __stdc_progam_startup() and __stdc_program_end()
56 functions. It is assumed that this is taken care of by the startup
57 code provided by the compiler.
60 posixc.library/--background_posixc--
62 *******************************************************************************/
65 /*******************************************************************************
71 Currently no real locale support is provided by stdc.library. All locale
72 related functions have a minimal implementation assuming only a "C"
74 Implementing proper locale support will need careful development to have
75 a consistent integration with locale.library. People with ideas can
76 always post on the AROS development mailing list.
79 locale.h, --background_wchar-- --background_c99--
81 *******************************************************************************/
84 /*******************************************************************************
90 wchar.h/wctype.h is not implemented by stdc.library. It is left to
91 the compiler to provide their implementation of wchar support.
92 No system functions should thus at the moment use wchar as
93 implementation is compiler dependent.
96 --background_locale-- --background_c99--
98 *******************************************************************************/
101 /*******************************************************************************
104 --background_string--
107 Contrary to the other include files; almost all string functions are
108 made part of stdc.library include the POSIX and the SAS/C ones.
109 These string functions are most of the small and don't depend on other
110 code. Doing it this way avoids having code that only uses non C99 string
111 functions having a dependency on posixc.library.
114 --background_locale-- --background_c99--
116 *******************************************************************************/