Re: Pipe Input/Output
- Posted by jmduro Jul 08, 2015
- 1570 views
Here is a working example I use almost every day.
public function execCommand(sequence cmd) sequence s = "" object z = pipe:create() object p = pipe:exec(cmd, z) if atom(p) then logMsg(sprintf("Failed to exec() with error %x", pipe:error_no())) pipe:kill(p) return -1 end if object c = pipe:read(p[pipe:STDOUT], 256) while sequence(c) and length(c) do s &= c if atom(c) then logMsg(sprintf("Failed on read with error %x", pipe:error_no())) pipe:kill(p) return -1 end if c = pipe:read(p[pipe:STDOUT], 256) end while --Close pipes and make sure process is terminated pipe:kill(p) return s end function