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 | _guuid4 |
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 |