44 lines
985 B
Text
44 lines
985 B
Text
|
#!/usr/bin/newlisp
|
||
|
|
||
|
|
||
|
(define (test-pipe)
|
||
|
(write-file "pipe-child.lsp"
|
||
|
[text]
|
||
|
(set 'msg (read-line (int (nth 2 (main-args)))))
|
||
|
(write-line (int (nth 3 (main-args))) (upper-case msg))
|
||
|
(exit)
|
||
|
[/text]
|
||
|
)
|
||
|
(and
|
||
|
(set 'channel (pipe))
|
||
|
(set 'in (first channel))
|
||
|
(set 'out (last channel))
|
||
|
(if (find ostype '("Windows" "OS/2"))
|
||
|
(process (string "newlisp pipe-child.lsp " in " " out))
|
||
|
(process (string "./newlisp pipe-child.lsp " in " " out)))
|
||
|
(sleep 1000)
|
||
|
(write-line out (dup "hello there " 1000))
|
||
|
(sleep 1000)
|
||
|
(= (read-line in) (dup "HELLO THERE " 1000))
|
||
|
(delete-file "pipe-child.lsp")
|
||
|
)
|
||
|
)
|
||
|
|
||
|
;(if (find ostype '("Linux" "BSD" "OSX" "Solaris" "SunOS" "Aix" "True64Unix" "Cygwin"))
|
||
|
; (define (test-pipe)
|
||
|
; (set 'channel (pipe))
|
||
|
; (set 'in (first channel))
|
||
|
; (set 'out (last channel))
|
||
|
; (fork (write-line out (upper-case (read-line in))))
|
||
|
; (write-line out "hello there")
|
||
|
; (sleep 2000)
|
||
|
; (= (read-line in) "HELLO THERE")
|
||
|
; )
|
||
|
;)
|
||
|
|
||
|
(println "test-pipe => " (test-pipe))
|
||
|
|
||
|
(exit)
|
||
|
|
||
|
|