delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2008/08/13/13:46:03

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Message-ID: <48A31DD2.8030105@x-ray.at>
Date: Wed, 13 Aug 2008 19:45:54 +0200
From: Reini Urban <rurban AT x-ray DOT at>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de-AT; rv:1.8.1.13) Gecko/20080313 SeaMonkey/1.1.9
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: perl - finding files that don't exist?
References: <g7uv24$soc$1 AT ger DOT gmane DOT org> <48A3015C DOT 6070009 AT cygwin DOT com>
In-Reply-To: <48A3015C.6070009@cygwin.com>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019