git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Implementing stat() with FindFirstFile()

From
MBMagnus Bäck <baeck@swipnet.se>
Date
Mar 21, 2009, 15:47 UTC
Message-ID
<20090321154738.GA27249@jeeves.jpl.local>

Is there any reason why compat/win32.h uses GetFileAttributesEx() instead of FindFirstFile() to implement the stat() call on Windows? The current implementation requires each queried file to be opened and closed while FindFirstFile() only reads the directory.

I made a couple of test programs that stat()ed the 176k files on my disk and got the following best times with GetFileAttributesEx() and FindFirstFile() respectively:

./getfattr.exe < filelist.txt 1.31s user 9.72s system 27% cpu 40.424 total ./findfirst.exe < filelist.txt 1.92s user 13.98s system 95% cpu 16.681 total

I searched the archive and found a couple of threads touching upon the subject, but nothing conclusive.

I have a (trivial) patch ready if such a change would be interesting.
-- 
Magnus Bäck
baeck@swipnet.se
Next: Johannes Sixt
Message 1 of 14 in “Implementing stat() with FindFirstFile()”
  1. Magnus BäckMar 21, 2009
  2. Johannes SixtMar 21, 2009
  3. Magnus BäckMar 24, 2009
  4. Johannes SixtMar 26, 2009
  5. Magnus BäckMar 26, 2009
  6. Johannes SchindelinMar 27, 2009
  7. Magnus BäckMar 29, 2009
  8. Johannes SchindelinMar 30, 2009
  9. Björn SteinbrinkMar 30, 2009
  10. Heiko VoigtMar 30, 2009
  11. Johannes SchindelinMar 30, 2009
  12. Magnus BäckMar 31, 2009
  13. Johannes SchindelinMar 31, 2009
  14. Nazri RamliyApr 1, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.