RosettaCodeData/Task/DNS-query/Cache-ObjectScript/dns-query-2.cos

35 lines
490 B
Plaintext

Class Utils.OS Extends %RegisteredObject
{
ClassMethod Call(cmd, echo = 1) As %List
{
// instatiate pipe object
S list=""
S pipe=##class(%File).%New(cmd)
TRY {
//
S sc=pipe.Open("QR")
I $$$ISERR(sc) Q
// read queue/pipe and output to screen
DO {
K len S line=pipe.ReadLine(.len) I len=-1 Q
S $LI(list,$I(pos))=line
I echo W line,!
} WHILE $G(pos)<1000
} CATCH {
S ZE=$ZE
BREAK
}
// close pipe
D pipe.Close()
// return list value
Q list
}
}