Beispiel
(Abbildung 3.2):
set myresult \ [exec cmd args 2>@ stderr] |
Abbildung 3.2: Quellentextbeispiel: Kindprozeß und exec (synchron)
Liefert insbesondere ein schnelles kurzes Ergebnis
(Sperren (engl.: ,,blocking``), Speicher (engl.: ,,memory``)).
Pro:
Contra:
fork()
(engl.: ,,fork overhead``))
Beispiel
(Abbildung 3.3):
set mypid \ [exec cmd args 2>@ stderr &] |
Abbildung 3.3: Quellentextbeispiel: Kindprozeß und exec (asynchron)
Dies kann insbesondere bei einmaligen Aktionen eingesetzt werden, bei denen der weitere Status nicht weiter relevant ist, beispielsweise in Bezug auf MIME verknüpfte Anwendungen.
Pro:
Contra:
exit Status, kein Rückgabewert
Beispiel
(Abbildung 3.4):
|
Abbildung 3.4: Quellentextbeispiel: Kindprozeß und fileevent (channel)
Fileevents sind sehr universell einsetzbar, z.B. bei verteilten Architekturen.
Pro:
"r+" open
stdout close
exit Rückgabewerte (z.B. via catch {close})
ptys)
vwait mit after Handlern und GUI
Contra:
Beispiel
(Abbildung 3.5):
load my.so myCall myargs ... |
Abbildung 3.5: Quellentextbeispiel: Ladbare Erweiterungen
Die betrifft vor allem Erweiterungen, die z.B. über IPC und vergleichbare Mechanismen hinausgehen.
Pro:
Contra:
Beispiel
(Abbildung 3.6):
<main.c>: ... Tcl_CreateCommand(...) ... cc ... -lmylib -ltcl |
Abbildung 3.6: Quellentextbeispiel: Angepaßtes main()
Statische Ergänzungen sind nur selten sinnvoll, werden aber gelegentlich aufgrund von Performanz, Entwurf und Vermarktung gewählt.
Pro:
Contra: