echo T.close: test close built-in awk=${awk-../a.out} rm -f foo $awk '{ print >>"foo"; close("foo") }' /etc/passwd diff /etc/passwd foo || echo 'BAD: T.close (1)' ls -l >foo tail -1 foo >foo1 $awk '{ print >"foo2"; close("foo2") }' foo diff foo1 foo2 || echo 'BAD: T.close (2)' echo 0 >foo1 $awk ' # non-accessible file BEGIN { getline <"/etc/passwd"; print close("/etc/passwd"); } ' >foo2 diff foo1 foo2 || echo 'BAD: T.close (3)' echo -1 >foo1 $awk ' # file not opened BEGIN { print close("glotch"); } ' >foo2 diff foo1 foo2 || echo 'BAD: T.close (4)' echo 0 >foo1 $awk ' # normal close BEGIN { print "hello" > "foo"; print close("foo"); } ' >foo2 diff foo1 foo2 || echo 'BAD: T.close (5)' echo 0 >foo1 $awk ' # normal close BEGIN { print "hello" | "cat >foo"; print close("cat >foo"); } ' >foo2 diff foo1 foo2 || echo 'BAD: T.close (6)' |