Zum Aufrufen einer C-Funktion verwendet EGL einen Argumentstack. Dies ist ein Mechanismus, der Argumente zwischen den Funktionen und dem aufrufenden Code übergibt. Die aufrufende EGL-Funktion übergibt ihre Argumente an den Stack. Die aufgerufene C-Funktion ruft die Argumente aus dem Stack ab, um die Werte zu verwenden. Die aufgerufende Funktion übergibt ihre Rückgabewerte an den Stack. Die aufrufende Funktion ruft sie ab, um die Werte abzurufen. Die externen Funktionen für den Abruf und die Rückgabe werden mit der Argumentstackbibliothek bereitgestellt. Die externen Abruffunktionen sind nachfolgend für die verschiedenen Datentypen des Wertes beschrieben, der jeweils aus dem Argumentstack abgerufen wird. Die externen Funktionen für die Rückgabe sind unter Rückgabefunktionen für C beschrieben.
Bibliotheksfunktionen für die Rückgabe von Werten
| Name bei Version vor 7.31 | Name bei Version 7.31 und höher |
|---|---|
| popint | ibm_lib4gl_popMInt |
| popshort | ibm_lib4gl_popInt2 |
| poplong | ibm_lib4gl_popInt4 |
| popflo | ibm_lib4gl_popFloat |
| popdub | ibm_lib4gl_popDouble |
| popdec | ibm_lib4gl_popDecimal |
Mit den Strukturtypen dec_t und ifx_int8_t werden Daten des Typs DECIMAL und BIGINT in einem C-Programm dargestellt. Weitere Informationen zu den Strukturtypen dec_t und ifx_int8_t sowie den Bibliotheksfunktionen für das Bearbeiten und Drucken von Variablen des Typs DECIMAL und BIGINT enthält die Veröffentlichung IBM Informix ESQL/C Programmer's Manual.
Bibliotheksfunktionen für den Abruf von Zeichenfolgen
| Name bei Version vor 7.31 | Name bei Version 7.31 und höher |
|---|---|
| popquote | ibm_lib4gl_popQuotedStr |
| popstring | ibm_lib4gl_popString |
| popvchar | ibm_lib4gl_popVarChar |
Sowohl ibm_lib4gl_popQuotedStr( ) als auch ibm_lib4gl_popVarChar( ) kopiert exakt len Byte in den Zeichenfolgepuffer *qv. Hierbei füllt ibm_lib4gl_popQuotedStr( ) wie benötigt mit Leerzeichen auf. ibm_lib4gl_popVarChar( ) nimmt jedoch keine Auffüllung auf die vollständige Länge vor. Das letzte in den Puffer kopierte Byte ist ein Nullbyte für die Beendigung der Zeichenfolge. Die maximale Länge der Zeichenfolgedaten beträgt somit len-1. Ist das Argument im Stack länger als len-1, gehen seine abschließenden Byte verloren.
Bibliotheksfunktionen für den Abruf von Zeitwerten
| Name bei Version vor 7.31 | Name bei Version 7.31 und höher |
|---|---|
| popdate | ibm_lib4gl_popDate |
| popdtime | ibm_lib4gl_popDateTime |
| popinv | ibm_lib4gl_popInterval |
Mit den Strukturtypen dtime_t und intrvl_t werden Daten des Typs DATETIME und INTERVAL in einem C-Programm dargestellt. Das Argument qual empfängt die binäre Darstellung des Qualifikationsmerkmals für DATETIME oder INTERVAL. Weitere Informationen zu den Strukturtypen dtime_t und intrvl_t sowie zu Bibliotheksfunktionen für das Bearbeiten und Drucken von Variablen des Typs DATE, DATETIME und INTERVAL enthält die Veröffentlichung IBM Informix ESQL/C Programmer's Manual.
Bibliotheksfunktionen für den Abruf von Werten des Typs BYTE oder TEXT
| Name bei Version vor 7.31 | Name bei Version 7.31 und höher |
|---|---|
| poplocator | ibm_lib4gl_popBlobLocator |
Jedes Argument für BYTE oder TEXT muss als Typ BYTE oder TEXT abgerufen werden, weil EGL keine automatische Datentypkonvertierung bereitstellt.