github.com/benhoyt/goawk@v1.8.1/testdata/T.close (about)

     1  echo T.close: test close built-in
     2  
     3  awk=${awk-../a.out}
     4  
     5  rm -f foo
     6  $awk '{ print >>"foo"; close("foo") }' /etc/passwd
     7  diff /etc/passwd foo || echo 'BAD: T.close (1)'
     8  
     9  ls -l >foo
    10  tail -1 foo >foo1
    11  $awk '{ print >"foo2"; close("foo2") }' foo
    12  diff foo1 foo2 || echo 'BAD: T.close (2)'
    13  
    14  echo 0 >foo1
    15  $awk '	# non-accessible file
    16    BEGIN { getline <"/etc/passwd"; print close("/etc/passwd"); }
    17  ' >foo2
    18  diff foo1 foo2 || echo 'BAD: T.close (3)'
    19  
    20  echo -1 >foo1
    21  $awk '	# file not opened
    22    BEGIN { print close("glotch"); }
    23  ' >foo2
    24  diff foo1 foo2 || echo 'BAD: T.close (4)'
    25  
    26  echo 0 >foo1
    27  $awk '	# normal close
    28    BEGIN { print "hello" > "foo"; print close("foo"); }
    29  ' >foo2
    30  diff foo1 foo2 || echo 'BAD: T.close (5)'
    31  
    32  echo 0 >foo1
    33  $awk '	# normal close
    34    BEGIN { print "hello" | "cat >foo"; print close("cat >foo"); }
    35  ' >foo2
    36  diff foo1 foo2 || echo 'BAD: T.close (6)'