This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: perl - finding files that don't exist?
Larry Hall (Cygwin) schrieb:
Paul Mallas wrote:
I am not sure where this issue should sits - is it a perl problem or a
cygwin problem or windows? Not sure - but I have noticed just after
cygwin upgrade.
Perl seems to be finding files that don't exist:
$ ls -a
./ ../ Babel.pm
$ perl -e 'print (-f "./PRN.pm")'
1
$ perl -e 'print (-e "./PRN.pm")'
1
$ perl -e 'print (-e "./PR.pm")'
PRN.pm is reserved device in windows. You can't create a file with
this name in WinXP. But perl says the file exists now and it did not
seem to exhibit this behaviour before.
<http://cygwin.com/cygwin-ug-net/using-specialnames.html#id318040>
Cygwin has always recognized these devices because the underlying Windows
APIs do. Try "ls PRN" anywhere.
And "ls PRN.pm" has the same problem. With cygwin-1.5 and earlier only.
cygwin stat() is the problem, not perl.
Try "strace ls PRN.pm"
and see
fhandler_base::open_9x: 0xFFFFFFFF = CreateFile (C:\<path>\PRN.pm,
0x80000000, 0x7, 0x22C540, 0x3, 0x2000080, 0)
1.7 will work okay in this regard.
ls PRN.pm
ls: cannot access PRN.pm: No such file or directory
It will not use the old CreateFile() for stat(), but the Win95
incompatible Nt... variants
with \??\C:\<path>\PRN.pm
--
Reini Urban
http://phpwiki.org/ http://murbreak.at/
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/