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)
                if ( (getline dummy < file) >=0 )
                        # file exists (possibly empty) and can be read
                        ret = 1;
                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
            # file is not readable