fileutils-4.0-3

egor duda deo@logos-m.ru
Thu Jun 14 00:41:00 GMT 2001


Hi!

Wednesday, 13 June, 2001 Corinna Vinschen vinschen@redhat.com wrote:

>> Wednesday, 13 June, 2001 Corinna Vinschen cygwin@cygwin.com wrote:
>> 
>> CV> Typically it's the other way around. If a Win32 application opens
>> CV> a file using the `CreateFile' call, it has exclusive access to the
>> CV> file while it's opened. If the application want's to share the
>> CV> file with other apps, it can do that by giving additional flags
>> CV> to `CreateFile' (FILE_SHARE_READ, FILE_SHARE_WRITE). Cygwin's
>> CV> open(2) call uses these flags by default.
>> 
>> well, CreateFile() accepts 0 as second argument, which is what we
>> need-- just query information no matter if anyone opened file in
>> DENYALL mode. i've just tested it on nt4.0 -- it works fine.
>> 
>> the only question is whether we should add new parameter to
>> fhandler::open(), say 'int cygwin_flags', or define new flag in
>> fcntl.h? for me, the first one looks preferable.

CV> Wow. I just read the MSDN entry of CreateFile and I must admit
CV> that I always slipped over that sentence without reading it.
CV> It seems obvious now. If that really works (as you state),
CV> it would be the ultimate solution for `fstat'.

CV> I think you're right using some internal flag. It's not needed
CV> to create a new fcntl flag.

patch attached. i was a bit confused to discover, however, that
stat_worker works somehow without it. AFAICS from stat_worker code,
if it cannot open file, it still tries to get as much information as
it can, file size and times included. so, du works for me either with
or without this patch.

Egor.            mailto:deo@logos-m.ru ICQ 5165414 FidoNet 2:5020/496.19
query-open.diff
query-open.ChangeLog

-------------- next part --------------
2001-06-14  Egor Duda  <deo@logos-m.ru>

	* fhandler.cc (fhandler_base::open): Set win32 access flags
	to 0, when requested.
	* fhandler.h: New status flag FH_QUERYOPEN.
	(fhandler::get_query_open): New function.
	(fhandler::set_query_open): Ditto.
	* syscalls.cc (stat_worker): Request query-only open mode.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: query-open.diff
Type: text/x-diff
Size: 4224 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-patches/attachments/20010614/8c81f57e/attachment.bin>


More information about the Cygwin-patches mailing list