BEGIN {
cmd = "echo hello; sleep 1; echo goodbye"
print "With timeouts"
PROCINFO[cmd, "READ_TIMEOUT"] = 300
while ((rc = (cmd | getline x)) > 0)
print x
if (rc < 0)
print rc, (PROCINFO["errno"] != 0), (ERRNO != "")
print (close(cmd) != 0)
PROCINFO[cmd, "RETRY"]
print ""
print "With timeouts and retries"
while (((rc = (cmd | getline x)) > 0) || (rc == -2)) {
if (rc > 0) {
print x
n = 0
}
else
print ++n, "timed out; trying again"
}
if (rc < 0)
print rc, (PROCINFO["errno"] != 0), (ERRNO != "")
print (close(cmd) != 0)
}