Zu jeder Bibliotheksfunktion im C-Laufzeitsystem, die mit Zeichen und/oder Zeichenketten arbeitet oder ein Zeichen bzw. eine Zeichenkette zurückliefert (z.B. printf
), gibt es
eine Implementierung der Funktion für die Bearbeitung von Zeichen und/oder Zeichenketten im EBCDIC-Format,
eine Implementierung der Funktion für die Bearbeitung von Zeichen und/oder Zeichenketten im ASCII-Format,
ein Makro-Define, das die Originalfunktion (EBCDIC-Format) auf die zugehörige ASCII-Funktion abbildet.
Prototyp einer ASCII-Funktion und zugehöriges Define sind in derselben Include-Datei abgelegt, in der auch die korrespondierende Originalfunktion deklariert ist. Dies hat den Vorteil, dass, außer ggf. <ascii_ebcdic.h> (siehe "Expliziter Wechsel zwischen EBCDIC- und ASCII-Codierung"), für die Nutzung der ASCII-Codierung von Zeichen und Zeichenketten keine zusätzlichen Include-Dateien benötigt werden.
Namen der ASCII-Funktionen
Die Namen der ASCII-Funktionen sind nach folgender Syntax aufgebaut:
__
originalfunktion_ascii()
Dabei ist für originalfunktion der Name der Originalfunktion einzusetzen.
Die ASCII-Variante von printf()
beispielsweise lautet __printf_ascii()
.
C-Bibliotheksfunktionen, zu denen es eine ASCII-Funktion gibt
Zu folgenden C-Bibliotheksfunktionen gibt es jeweils eine ASCII-Variante:
asctime | assert | atof | atoi | atol |
atoll | bs2cmd | bs2exit | bs2fstat | c16rtomb |
c32rtomb | creat | creat64 | ctime | ctime64 |
ecvt | fdopen | fgetc | fgets | fopen |
fopen64 | fprintf | fputc | fputs | fread |
freopen | freopen64 | fscanf | fwrite | gcvt |
getc | getc_unlocked | getchar | getchar_unlocked | getenv |
getlogin | getpgmname | gets | gettsn | isalnum |
isalpha | isascii | iscntrl | isdigit | isgraph |
islower | isprint | ispunct | isspace | isupper |
isxdigit | localeconv | mbrtoc16 | mbrtoc32 | mktemp |
open | open64 | perror | printf | putc |
putc_unlocked | putchar | putchar_unlocked | putenv | puts |
remove | rename | scanf | setenv | setlocale |
snprintf | sprintf | sscanf | strcoll | strerror |
strftime | strlower | strptime | strtod | strtof |
strtoimax | strtold | strtol | strtoll | strtoul |
strtoull | strtoumax | strupper | strxfrm | system |
tmpnam | tolower | toupper | ungetc | unsetenv |
vfprintf | vfscanf | vprintf | vscanf | vsnprintf |
vsprintf | vsscanf |