AE-Umgebungsvariablen: ausführbare und gemeinsam genutzte Bibliotheken

Sie können die Funktion register_ae verwenden, um den ausführbaren Pfad und die Umgebungsvariable NZAE_EXECUTABLE_PATH zu setzen. Dieser Abschnitt enthält Beispiele für die Verwendung von AEs mit AE-ENVs.

Einfache C-Sprache AE

Für dieses Beispiel wird ein einfaches AE in C-Sprache zu einer ausführbaren Datei namens helloae kompiliert. Das AE-Exportverzeichnis befindet sich unter /nz/export/ae. Beim Kompilieren wird eine Version für den Host und eine für die SPUs erzeugt:

/nz/export/ae/applications/dev/david/host/helloae
/nz/export/ae/applications/dev/david/spu/helloae

Die AE-Umgebungsvariablen verweisen das AE-System auf den Speicherort der ausführbaren Dateien:

NZAE_HOST_ONLY_NZAE_EXECUTABLE_PATH=/nz/export/ae/applications/dev/david/host/hel
loae
NZAE_SPU_ONLY_NZAE_EXECUTABLE_PATH=/nz/export/ae/applications/dev/david/spu/hello
ae

Die AE-ENV-Schlüsselnamen bestehen aus zwei Teilen: einem Stamm und einem Ortspräfix. Im vorherigen Beispiel ist die Wurzel NZAE_EXECUTABLE_PATH. Die Präfixe sind NZAE_HOST_ONLY und NZAE_SPU_ONLY.

Eine Variable mit dem Ortspräfix NZAE_HOST_ONLY ist nur auf dem Host sichtbar. Das Ortspräfix wird entfernt und der Host erhält den Wert:

NZAE_EXECUTABLE_PATH=/nz/export/ae/applications/dev/david/host/helloae

In ähnlicher Weise ist eine Variable mit dem Ortspräfix NZAE_SPU_ONLY nur für die SPUs sichtbar. Auch hier wird das Ortspräfix abgezogen und die SPUs erhalten:

NZAE_EXECUTABLE_PATH=/nz/export/ae/applications/dev/david/spu/helloae
Hinweis: Die Ortspräfixe können mit jeder AE-Umgebungsvariablen verwendet werden.

Einfache C-Sprache AE mit gemeinsam genutzten Bibliotheken

In diesem Beispiel verwendet die AE helloae ein Verzeichnis mit gemeinsam genutzten Bibliotheken. Setzen Sie den Linux LD_LIBRARY_PATH für die Anwendung. Er kann geändert werden, da das AE-Laufzeitsystem LD_LIBRARY_PATH auch für seinen eigenen Betrieb verwendet. Legen Sie zunächst die gemeinsam genutzten Bibliotheken in den AE Export Directory Tree.

/nz/export/ae/applications/dev/david/libhost/lib*.so
/nz/export/ae/applications/dev/david/libspu/lib*.so

Dieser Code zeigt, wie man das AE-Laufzeitsystem dazu bringt, das Verzeichnis an LD_LIBRARY_PATH anzuhängen:

NZAE_HOST_ONLY_NZAE_APPEND_LD_LIBRARY_PATH=/nz/export/ae/applications/dev/david/l
ibhost 
NZAE_SPU_ONLY_NZAE_APPEND_LD_LIBRARY_PATH=/nz/export/ae/applications/dev/david/li
bspu

Diese AE-ENV-Definitionen bestehen aus zwei Präfixen und einer Wurzel. Die Wurzel ist LD_LIBRARY_PATH. Das erste Präfix, das zuerst angegeben werden muss, ist das oben erwähnte Ortspräfix. Das zweite ist das Append-Präfix NZAE_APPEND, das die ZB anweist, diesen Wert an einen bestehenden Wert anzuhängen. Wenn der Schlüssel keinen Wert hat, wird ein neuer Wert erstellt. Beim Anhängen sucht das AE-System zunächst nach einem AE-ENV mit dem Namen des Zielschlüssels. Wenn es nicht gefunden wird, sucht das AE-System in der Prozessumgebung des Betriebssystems.

Die gleiche Technik kann verwendet werden, um an jede Umgebungsvariable anzuhängen, einschließlich PATH und CLASSPATH. Sie können das Präfix NZAE_PREPEND verwenden, um eine AE-ENV- oder OS-Umgebungsvariable voranzustellen. Das Ortspräfix muss vor einem Append- oder Prepend-Präfix angegeben werden. Die angehängten oder vorangestellten Werte werden durch den Doppelpunkt (:) getrennt. Die Präfixe bieten dem AE-Programmierer eine erhebliche Kontrolle über die Umgebung, in der der Prozess läuft. Die Zuweisung der Variablen erfolgt in einem ersten Durchgang. Die Operationen zum Anhängen und Voranstellen werden in einem zweiten Durchgang durchgeführt, nachdem alle Zuweisungen verarbeitet wurden.