The most portable way to test for the existence of a file is to simply try and read from the file.
function exists(file, dummy, ret) { ret=0; if ( (getline dummy < file) >=0 ) { # file exists (possibly empty) and can be read ret = 1; close(file); } return ret; }
[ I've read reports that earlier versions of mawk would write to stderr as well as getline returning <0 -- is this still true? ]
On Unix, you can probably use the `test' utility
if (system("test -r " file) == 0) # file is readable else # file is not readable