LIBQ(FILES) DABA16 LIBQ(FILES) NAME libq - EQL Laufzeit-Bibliothek BESCHREIBUNG Libq ist die EQL-Laufzeit-Bibliothek, die alle Routinen ent- haelt, die fuer das Laden eines EQL-Programmes notwendig sind. Die Routinen befinden sich bei der Auslieferung in der Bibliothek .../lib/libq.a, die durch die Installation standardmaessig nach /usr/lib kopiert werden muss (als /usr/lib/libq.a ). Diese Bibliothek muss beim Verbinden (Linken) der Objektmoduln spezifiziert werden. Das erfolgt beim cc Aufruf durch die -lq Spezifikation. Verschiedene hilfreiche Routinen, die durch die EQL-Prozesse verwendet werden, sind in der Bibliothek enthalten. Diese koennen durch den EQL-Programmierer verwendet werden, um eine doppelt Codierung zu vermeiden. Es gibt : int IIatoi(buf, i) char *buf; int i; char *IIbmove(source, destination, len) char *source, *destination; int len; char *IIconcatv(buf, arg1, arg2, ..., 0) char *buf, *arg1, ...; char *IIitos(i) int i; int IIsequal(s1, s2) char *s1, *s2; int IIlength(string) char *string; IIsyserr(string, arg1, arg2, ...); char *string; IIatoi konvertiert eine durch buf adressierte Zeichen- kette in die Festkommazahl (Integer) i. Es wird -1 bei Syntaxfehler, 0 bei keinem Fehler oder 1 bei Ueberlauf zurueckgegeben. IIbmove Uebertraegt len Bytes von der Quelle (source) zum Ziel (destination), wobei ein Pointer zu- rueckgegeben wird, der auf die Lokalisation nach dem letzten uebertragenen Byte verweist. Es wird kein Null-Byte angehangen, und es erfolgen auch keine Pruefungen von len und destination. IIconcatv Verkettet nach buf alle seine Argumente, wobei ein Pointer auf das Null-Byte am Ende der Kette zurueckgegeben wird. Buf darf nicht mit einem der arg-n (ausser arg1) uebereinstimmen. IIitos konvertiert eine Festkommazahl (Integer) in eine Zeichenkette (String) und gibt diese zurueck. IIsequal Gibt 1 zurueck (ansonsten 0), wenn die Strings s1 und s2 identisch sind. IIlength Gibt die maximale Laenge des String string (ohne das Null-Byte am Ende) zurueck (Maximum : 255). IIsyserr IIsyserr liefert eine Fehlermitteilung ueber die Standardausgabe und bricht stets mit dem Aufruf der Funktion exit(-1) nach der Ausgabe der Feh- lernachricht ab. Die Argumente fuer IIsyserr sind in der gleichen Form wie bei der C-Funktion "printf" spezifizierbar, wobei ihre Anzahl auf 5 beschraenkt ist. Es gibt auch einige globale EQL-Variable, die durch den Nut- zer manipuliert werden koennen : int IIerrflag; char *IImainpr; char (*IIprint_err)(); int IIret_err(); int IIno_err(); IIerrflag Wird von DABA bei einem Fehler auf die Fehler- nummer gesetzt. Dieses Flag ist gueltig vom Zeitpunkt des Auftretens des Fehlers bis zur Be- nutzung der naechsten EQL-Anweisung. Es kann unmittelbar nach einer EQL-Anweisung benutzt werden, um festzustellen, ob sie erfolgreich war. IImainpr Das ist ein String, der bestimmt, von wo daba aufgerufen worden ist, wenn eine "## daba"- Anweisung verwendet wurde. Standardmaessig ist es "/mnt/daba". IIprint_err Dieser Funktions-Pointer wird benutzt, um eine Funktion aufzurufen, die bestimmt, ob (wenn vor- handen) Fehlernachrichten ausgegeben werden sol- len, wenn ein daba-Fehler aufgetreten ist. Er wird von IIerror() mit der Fehlernummer als ein Argument aufgerufen, und die Fehlernachricht, die mit der zurueckgegebebnen Fehlernummer kor- respondiert, wird ausgegeben. Wenn (*IIprint_err)( ) 0 zurueckgibt, wurde keine Fehlernachricht ausgegeben. Anfaenglich wird IIprint_err auf IIret_err() gesetzt, um den aufgetretenen Fehler auszugeben. IIret_err Gibt sein einfaches Integer-Argument zurueck. Es wird benutzt, um (*IIprint_err)() zu veran- lassen, die Ausgabe des aufgetretenen Fehlers auszufuehren. IIno_err Gibt 0 zurueck. Es wird benutzt, damit (*II- print_err)() die Ausgabe der Fehlernachricht un- terdrueckt. IIno_err wird benutzt, wenn in ei- ner parametrisierten EQL-Anweisung ein Fehler auftritt und unterdrueckt die Ausgabe des korre- spondierenden Parser-Fehlers. SIEHE AUCH eql(daba), eqc(mutos).