This section describes new features pertaining to the standard header files in the DEC C Run-Time Library (RTL).
The wchar_t type is now added to this header file. The declaration of errno is also removed.
Because the ANSI C Standard refers to the macros in <ctype.h> as functions, the <ctype.h> header file now includes function prototypes for functions in the DEC C RTL that perform the same operations as the macros currently defined in this header file. These functions have been added to the DEC C RTL.
The nonstandard toascii macro remains because, according to the ANSI C Standard, Section 4.14.2, names beginning with "to" are reserved by the ANSI C Standard when <ctype.h> is included.
This header file containing IEEE floating-point class constants has been added to support the new DEC C RTL functions fp_class, fp_ classf, and fp_classl available on OpenVMS Alpha systems.
The new standard header file <locale.h> is now supported and includes prototypes for the functions setlocale and localeconv, which have been added to the DEC C RTL.
The functions cabs and hypot are no longer defined in the <math.h> header file when the compiler is run in strict ANSI C mode.
The SIGABRT signal is implemented and defined in the <signal.h> header file. SIG_ATOMIC_T is now defined as char. In strict ANSI C mode, the following are not declared: ssignal, gsignal, kill, pause, sleep, sigvec, sigblock, sigsetmask, sigstack, and sigpause.
In strict ANSI C mode, the names of the ILL_* and FPE_* macros are changed to begin with "SIG" (for example, SIGILL_RESAD_FAULT, SIGFPE_INTOVF_TRAP, and so on) or be removed.
The BADSIG macro is renamed to SIG_ERR.
The <stdio.h> header file now defines the type size_t and no longer includes <stdarg.h>. The v*printf functions are now prototyped using the type that va_list is defined to be (that is, char *).
In strict ANSI C mode, the following macros are not visible: TRUE, FALSE, SEEK_EOF, OPEN_MAX, L_ctermid, L_cuserid, L_lcltmpnam, L_ nettmpnam, and FILE_TYPE. In strict ANSI C mode, the following functions are not visible: fgetname, fdopen, getw, and putw.
The rename function is added.
The fflush function is modified so that a null argument causes it to flush all files.
The printf function is modified to provide the following support:
The scanf function is modified to handle white space as specified by the ANSI C Standard. The %p specifier is added. The L flag for long double is added.
The clearerr, feof, and ferror macros are now provided as both macros and functions. By default, they are accessed as macros. To access them as functions, perform an #undef on the macro of the same name. For example:
#undef clearerr
The <stdlib.h> header file is modified to define size_t and wchar_t directly, rather than including <stddef.h>. The names of the DIV_T and LDIV_T structures now begin with underscores.
The MB_CUR_MAX macro is added.
The atoi and atol functions now handle overflow in a manner consistent with the ANSI C Standard. They used to treat their input as unsigned; now they are treated as signed.
The multibyte character and string functions mblen, mbtowc, wctomb, mbstowcs and wcstombs are added as specified in Sections 4.10.7 and 4.10.8 of the ANSI C Standard.
The abort() function is changed to only raise a SIGABRT signal.
The strcoll and strxfrm functions are added as specified in the ANSI C Standard, Sections 4.11.4.3 and 4.11.4.5.
In strict and relaxed ANSI C modes, the following changes apply to the <time.h> header file:
The mktime and strftime functions are added as specified in the ANSI C Standard, Sections 4.12.2.3 and 4.12.3.5, respectively.