Readdir() bug?
Christopher Faylor
cgf@redhat.com
Sun Feb 24 20:24:00 GMT 2002
On Mon, Feb 25, 2002 at 12:49:39AM +0000, John William wrote:
>From: "John William" <jw2357@hotmail.com>
>To: cygwin@cygwin.com
>Subject: Readdir() bug?
>Date: Mon, 25 Feb 2002 00:49:39
>
>I have a program that behaves differently on Linux and Cygwin. I'm
>using version 1.3.9 of the DLL.
>
>The program tries to list all files in a directory by doing opendir(),
>then readdir() until all the entries have been read and then
>closedir(). That works fine, but the time between the opendir() and
>the closedir() can be considerable.
>
>On Linux, if any files are added to the directory after the opendir(),
>they will not be enumerated by readdir(). On Cygwin, they are (they
>can appear in
>
>the middle of the file list or at the end - presumably wherever the new
>file
>
>happened to end up in the directory's file order).
>
>I am assuming that the Linux behavour is correct. Cygwin causes the
>program in question to break because it can modify files and copy them
>back into the
>
>original directory (with a copy followed by a rename to replace the
>original
>
>file) so readdir() never hits the end of the file list because it keeps
>seeing the newly added files.
>
>Any help or comments would be appreciated. Thanks.
>From the Single UNIX (R) Specification, Version 2:
http://www.opengroup.org/onlinepubs/007908799/xsh/readdir.html
If a file is removed from or added to the directory after the most
recent call to opendir() or rewinddir(), whether a subsequent call to
readdir() returns an entry for that file is unspecified.
cgf
--
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/
More information about the Cygwin
mailing list