On Thu, 09 Sep 2010 16:25:44 -0400, Nick Sabalausky <[email protected]> wrote:
"Steven Schveighoffer" <[email protected]> wrote in message
news:[email protected]...
On Tue, 07 Sep 2010 16:51:48 -0400, Nick Sabalausky <[email protected]> wrote:
Ah cool, looking forward to it. I was just about ready to launch into a
bunch of std.process improvements myself ;) In the meantime, it seems
that
File has an undocumented constructor that takes a file handle instead
of
a
filename, so that should work for me.
Beware, it takes a file *descriptor*, which is different from a *HANDLE*
on windows. In writing the updated std.process I had to write D code
that
mimics the internals of DMC's runtime in order to translate between file
descriptors and handles, not a pretty sight...
I'm just feeding it the values I get from CreatePipe:
http://msdn.microsoft.com/en-us/library/aa365152(VS.85).aspx
Seems to be working fine, though...
That won't work. I'm surprised it works at all. DMC maintains the list
of handles in an array, with the index of the array being the file
descriptor, and the value at that element being the HANDLE. If it's
working, you're extremely lucky that the unallocated slot at the index
that happens to be that HANDLE value has the same value as the HANDLE
itself.
Or maybe I'm misunderstanding something... Walter?
-Steve