43 lines
985 B
Text
Executable file
43 lines
985 B
Text
Executable file
#!/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)
|
|
|
|
|