aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2010-09-16 09:39:26 +1000
committerSteve Bennett <steveb@workware.net.au>2010-10-15 11:02:52 +1000
commit77ebbb58cb33c0e37daef21baee7a06fe6ab49cb (patch)
treefd54e817a86a64ca5bcb6112737a6b225410ed5d /examples
parent9a438e624ea8771f790eb0e45bb65f7091681daf (diff)
downloadjimtcl-77ebbb58cb33c0e37daef21baee7a06fe6ab49cb.zip
jimtcl-77ebbb58cb33c0e37daef21baee7a06fe6ab49cb.tar.gz
jimtcl-77ebbb58cb33c0e37daef21baee7a06fe6ab49cb.tar.bz2
Implement open "|..."
Uses a Tcl wrapper, popen, from tclcompat Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'examples')
-rw-r--r--examples/popen.tcl19
1 files changed, 19 insertions, 0 deletions
diff --git a/examples/popen.tcl b/examples/popen.tcl
new file mode 100644
index 0000000..8a6b6e3
--- /dev/null
+++ b/examples/popen.tcl
@@ -0,0 +1,19 @@
+# Internally, open "|..." calls out to popen from tclcompat.tcl
+#
+# This code is compatible with Tcl
+
+# Write to a pipe
+set f [open |[list cat | sed -e "s/line/This is line/" >temp.out] w]
+foreach n {1 2 3 4 5} {
+ puts $f "line $n"
+}
+close $f
+puts "Created temp.out"
+
+# Read from a pipe
+set f [open "|cat temp.out"]
+while {[gets $f buf] >= 0} {
+ puts $buf
+}
+close $f
+file delete temp.out