LIBAMX(FILES) DABA16 LIBAMX(FILES) NAME libamx - AMX-Laufzeit-Bibliothek BESCHREIBUNG Das AMX-Interface von DABA besteht aus dem AMX-Compiler amx und der AMX-Laufzeit-Bibliothek. Diese AMX-Laufzeit- Bibliothek wird als .../lib/libamx bereitgestellt. Nachfolgend werden einige Funktionen beschrieben, die auch vom C-Programmierer genutzt werden koennen, um doppelte Co- dierung zu vermeiden. Alle AMX-Funktionen (auch hier nicht beschriebene, aber in- tern verwendete) sind durch das Praefix AA gekennzeichnet, weshalb andere Nutzerfunktionen niemals mit AA beginnen sollten. Fuer die nachfolgende Beschreibungen gelten einige allgemei- nen Hinweise. Fuer die Zahlenangaben gelten folgende Spezifikationen: Float-zahl: {sp}[+/-]{sp}{Ziffer}[. Ziffer]{sp}[exp] wobei "sp" ein Leerzeichen, exp=[e/E]int der Exponent und int eine Integer Zahl im Sinne der Konvertierungs- funktion atoi ist. Integer-Zahl: {sp}[+{-]{sp}{Ziffer}{sp} Long-Integer-Zahl {sp}[+/-]{sp}{Ziffer}{sp} ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: NAME AAatof - konvertiert eine Zeichenkette in eine Float-Zahl UeBERSICHT AAatof (str, val) char *str; double *val; BESCHREIBUNG AAatof konvertiert eine durch str adressierte Zeichenkette in eine Float-Zahl. Das Ergebnis steht in der durch val adressierten Variablen. return: 8 -1 Syntaxfehler 0 keine Fehler 1 Ueberlauf SIEHE AUCH AAatoi() ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: NAME AAatol - konvertiert eine Zeichenkette in eine Long-Zahl UeBERSICHT AAatol (str, val) char *str; int *val; BESCHREIBUNG AAatol konvertiert eine durch str adressierte Zeichenkette in eine 32-Bit Long-Integer-Zahl. Das Ergebnis steht in der durch val adressierten Variablen. return: 8 -1 Syntaxfehler 0 keine Fehler 1 Ueberlauf ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: NAME AAbequal - Test auf Blockgleichheit UeBERSICHT AAbequal (a, b, l) char *a, *b; int l; BESCHREIBUNG AAbequal testet zwei Bloecke a und b , beide in der Laenge l , auf Gleichheit. return: 8 1 bei Gleichheit 0 bei Ungleichheit ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: NAME AAbmove - Block Transport UeBERSICHT char *AAbmove (a, b, l) char *a, *b; int l; BESCHREIBUNG AAbmove transportiert l Bytes von a nach b. FEHLERQUELLEN Die Sinnfaelligkeit von l und ein Ueberlauf von b werden nicht geprueft. "Return" erfolgt mit der Adresse des (l+1)-ten Elementes von b. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: NAME AAiocv - konvertiert eine Integer-Zahl in eine Zeichenkette UeBERSICHT AAiocv (i) int i; BESCHREIBUNG AAiocv konvertiert die Integer-Zahl i in eine Zeichenkette. Das Ergebnis wird in einem internen statischen Bereich ge- speichert, dessen Adresse durch "return" zurueckgegeben wird. SIEHE AUCH AAitoa () ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: NAME AAitoa - konvertiert 16-Bit Integerzahl in Zeichenkette UeBERSICHT AAitoa (i, str) int i; char *str; BESCHREIBUNG AAitoa konvertiert die Integer-Zahl i in eine 7 Byte lange Zeichenkette, die in dem durch str adressierten Feld gespei- chert wird. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: NAME AAlength - ermittelt die Laenge einer Zeichenkette UeBERSICHT AAlength (str) char *str; BESCHREIBUNG AAlength ermittelt die Anzahl der Bytes einer Zeichenkette, mit Ausnahme des die Kette abschliessenden Null-Bytes und gibt diese durch "return" zurueck. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: NAME AAscompare - vergleicht zwei Zeichenketten UeBERSICHT AAscompare (stra, la, strb, lb) char *stra, *strb; int la, lb; BESCHREIBUNG AAscompare vergleicht zwei Zeichenketten stra und strb auf der Basis ihres ascii-Codes. Die Anzahl der zu vergleichen- den Zeichen wird durch la bzw. lb definiert. Die Zeichen- kettenlaengen sollten mindestens so gross, wie die angege- benen Vergleichslaengen la und lb sein, andernfalls wird als Vergleichswert das Nullbyte benutzt. Werden die Laengen la und lb mit dem Wert Null angegeben, so wird dafuer automatisch ein Maximalwert (32767) benutzt. Ebenso wird, falls la und lb ungleich sind, fuer die Kette mit der kleineren Vergleichslaenge das Nullbyte zum Verglei- ch benutzt. Leerzeichen werden uebergangen. return: 8 -1 stra < strb 0 stra = strb 1 stra > strb ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: NAME AAsmove - Zeichenkette transportieren UeBERSICHT AAsmove (str, b) char *str, *b; BESCHREIBUNG AAsmove transportiert die Zeichenkette str zum Block b. "Return" erfolgt mit der Laenge der transportierten Zeichen- kette. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: NAME AAsyserr - Systemfehlermitteilung und Abbruch UeBERSICHT AAsyserr (ptr) char *ptr; BESCHREIBUNG AAsyserr liefert eine Fehlermitteilung ueber Standardausgabe und bricht im Normalfall durch Aufruf der Funktion exit ab. Argumente fuer AAsyserr sind in der gleichen Form wie bei printf anzugeben. Sie sind allerdings in ihrer Anzahl auf 5 beschraenkt. AAsyserr unterscheidet zwei Aufrufarten: 1. der erste Parameter ist Null (die folgenden Parameter wie bei printf ), dann wird genau die printf Funktion verwirklicht. 2. Der erste Parameter ist nicht Null (also alle Parameter wie bei printf ), dann wird mit Hilfe der externen Va- riablen char *Proc_name und int error eine erweiterte Fehlerprotokollierung verwirklicht. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: NAME AAztack - Zeichenkettenverknuepfung in einem Puf- fer UeBERSICHT char AAztack (stra, strb) char *stra; char *strb; BESCHREIBUNG verbindet die Zeichenketten stra und strb in einem stati- schen Pufferbereich zu einer Zeichenkette. "Return" erfolgt mit der Anfangsadresse des Puffers. Bei Pufferueberlauf wird mittels der Funktion AAsyserr der Fehlersachverhalt "ztack overflow" und der Pufferinhalt mit- geteilt. Der Puffer fasst maximal 100 Zeichen, wobei das Programm so angelegt ist, dass erst nach dem Umspeichern der Zeichenkette in den Puffer auf Ueberlauf getestet wird. Ein rekursiver Aufruf von AAztack ist moeglich (AAztack(AAztack(x, y), z)). SIEHE AUCH AAsyserr()