This is the mail archive of the
mailing list for the Cygwin project.
Re: Behavior of stat() changed from NT to Win2000/XP
- From: Igor Pechtchanski <pechtcha at cs dot nyu dot edu>
- To: Peter Davis <pd at world dot std dot com>
- Cc: cygwin at cygwin dot com
- Date: Tue, 27 May 2003 11:19:30 -0400 (EDT)
- Subject: Re: Behavior of stat() changed from NT to Win2000/XP
- Reply-to: cygwin at cygwin dot com
On Tue, 27 May 2003, Peter Davis wrote:
> Corinna Vinschen <firstname.lastname@example.org> wrote in 20030526141311.GK875@cygbert.vinschen.de:">news:20030526141311.GK875@cygbert.vinschen.de:
> > On Mon, May 26, 2003 at 09:58:11AM -0400, Peter Davis wrote:
> >> On Windows NT, the Cygwin stat function returns a non-zero value in
> >> the st_size field when called on a directory. However, in Windows
> >> 2000 and Windows XP, this same function returns 0 for st_size for a
> >> directory. This change in behavior has broken some features of mutt,
> >> and possible other programs as well.
> >> [...]
> >> Is there some Cygwin setting or configuration option that controls
> >> this?
> > That's Windows, actually. This value is returned for directories
> > by the FindFile routines. Nothing we can do about it. However, if
> > mutt depends on the st_size of a directory, that's a problem in mutt.
> So this is a case where Cygwin fails to emulate *nix behavior. I assume
> it works correctly on various *nix implementations. You may consider
> that a Windows issue, but if the purpose of Cygwin is to provide a
> porting environment, then that's a shortcoming of Cygwin.
> The mutt developers aren't particularly concerned with Cygwin or
> Windows, so they don't regard this as an issue. I don't see why this is
> a mutt problem. They assume that stat() works correctly. I'm not sure
> who's responsible for the Cygwin build of mutt, or for including it in
> Cygwin at all, but that's something to be considered in the future.
> I'm guessing there's no problem with mbox mail folders, since they're
> just ordinary files. The problem comes in because maildir and MH
> formats us directories as mail folders.
> BTW, if anyone knows how to build mutt under Cygwin, I'm *dying* to find
> out. I can work around the stat() problem, but I have not succeeded in
> building a mutt for Cygwin that doesn't crash on opening certain
The Single Unix Specification has this to say about the st_size field of
the stat structure:
off_t st_size file size in bytes (if file is a regular file)
This means, IMO, that the value for directories is unspecified, and a
portable application cannot rely on it at all.
|\ _,,,---,,_ email@example.com
ZZZzz /,`.-'`' -. ;-;;,_ firstname.lastname@example.org
|,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski
'---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow!
"I have since come to realize that being between your mentor and his route
to the bathroom is a major career booster." -- Patrick Naughton
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html