This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]