Subject: Re: Error in access() with long file names
From: Michael Eager <[email-masked]>
To: Randall R Schulz <[email-masked]>
Cc: Michael Eager <[email-masked]>, Cygwin <[email-masked]>
Date: Tue, 10 Jul 2001 13:20:40 -0700

One of the systems that I've checked has both FAT32 and NTFS drives.
The problem occurs when referencing either drive, either by default
(i.e., cd to a directory on the drive), or explicitly. 

Randall R Schulz wrote:
> 
> Michael,
> 
> You didn't say whether you're using NTFS, but if so, the : at the end might
> be tripping up either Cygwin or, conceivable, Windows. The name you gave
> takes the form of a file stream (and independent sub-file, a kind of
> generalized file "fork" if you're familiar with the Macintosh file
> systems). This is the case owing to the presence of the colon with more
> than one character to its left.
> 
> I tend to doubt the slash is allowable after the colon, but I'm not sure.
> 
> It's not that I think access() should return true for this name, but just
> that I wanted to point out the possibility that you're hitting something
> relatively obscure. As I said, it's only supported in NTFS, not in FAT file
> systems.
> 
> Randall Schulz
> Mountain View, CA USA
> 
> At 09:39 2001-07-10, Michael Eager wrote:
> >Using the most recent version of Cygwin.
> >
> >The access function return success when given a long string argument
> >which does not represent a valid file.  There is some sensitivity to the
> >characters in the string.  Removing the colon (and perhaps some other
> >characters) in the example program below gives correct results.
> >
> >Anyone know of a fix?
> >
> >===================================
> >
> >#include <stdio.h>
> >#include <unistd.h>
> >
> >char name[] =
> >  "aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffgggggggggghhh"
> >  "hhhhhhhiiiiiiiiiijjjjjjjjjjkkkkkkkkkkkllllllllllmmmmmmmmmmnnnnnnnnnnooooo"
> >  "oooooppppppppppqqqqqqqqqqrrrrrrrrrrssssssssssttttttttttuuuuuuuuuuvvvvvvvv"
> >  "vvwwwwwwwwwwxxxxxxxxxxyyyyyyyyyyzzzzzzzzzz01234567890:/";
> >
> >int main()
> >{
> >   if (access (name, R_OK) == 0)
> >     printf ("%s is readable\n", name);
> >   else
> >     printf ("%s is NOT readable\n", name);
> >
> >   return 0;
> >}
> >
> >
> >--
> >Michael Eager   Eager Consulting     [email-masked]
> >1960 Park Blvd., Palo Alto, CA 94306  650-325-8077

--
Michael Eager     [email-masked]	408-328-8426	
MontaVista Software, Inc. 1237 E. Arques Ave., Sunnyvale, CA  94085

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/