Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Message-ID: <3B4B6398.B524F174@mvista.com> Date: Tue, 10 Jul 2001 13:20:40 -0700 From: Michael Eager Organization: MontaVista Software, Inc. X-Mailer: Mozilla 4.75 [en] (X11; U; Linux 2.2.16-22 i686) X-Accept-Language: en MIME-Version: 1.0 To: Randall R Schulz CC: Michael Eager , Cygwin Subject: Re: Error in access() with long file names References: <5 DOT 1 DOT 0 DOT 14 DOT 2 DOT 20010710122511 DOT 02362e48 AT pop3 DOT cris DOT com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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 > >#include > > > >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 eager AT eagercon DOT com > >1960 Park Blvd., Palo Alto, CA 94306 650-325-8077 -- Michael Eager eager AT mvista DOT com 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/