Creating a "virtual" stdin/stdout/stderr

Daniel Davidson nospam at spam.com
Tue Oct 8 13:38:55 PDT 2013


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


More information about the Digitalmars-d-learn mailing list