Creating a "virtual" stdin/stdout/stderr

Colin Grogan grogan.colin at gmail.com
Tue Oct 8 14:32:48 PDT 2013


On Tuesday, 8 October 2013 at 20:38:56 UTC, Daniel Davidson wrote:
> On Tuesday, 8 October 2013 at 20:26:49 UTC, Colin Grogan wrote:
>> On Tuesday, 8 October 2013 at 20:25:42 UTC, Colin Grogan wrote:
>>> Hi all,
>>>
>>> I want to create my own File in memory that I can pipe output 
>>> to and read it in from another part of the program. I dont 
>>> want to physically write data to disk, just store it in 
>>> memory.
>>>
>>> I've been trawling the documentation for the past while and 
>>> the closest I can find is std.stdio.tmpfile(), however this 
>>> always opens in "rb" and therefore isnt useful for me (I 
>>> think!)
>>>
>>> The reason I need to be able to make a File is because I want 
>>> to send these IOstreams to std.processes spawnProcess().
>>>
>>> Maybe I'm just looking in the wrong place?
>>>
>>> Thanks in advance!
>>
>> I should have specified, this is std.stdio.File, not
>> std.stream.File.
>
> Is this helpful?
>
> import std.stdio;
> import std.process;
>
> void main() {
>   auto p = pipe();
>   p.write("This is test\n");
>   p.close();
>   foreach( line; p.readEnd.byLine ) {
>     writeln(line);
>   }
> }
>
> Thanks
> Dan

It does!
I see the Pipeing functionality in std.process now. Guess I 
should have looked harder :)

Thanks.


More information about the Digitalmars-d-learn mailing list