Grabing C(++) stdout

John Colvin via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Jul 23 08:27:22 PDT 2014


On Wednesday, 23 July 2014 at 15:22:41 UTC, Chris wrote:
> On Wednesday, 23 July 2014 at 15:12:13 UTC, John Colvin wrote:
>> On Wednesday, 23 July 2014 at 14:53:35 UTC, Chris wrote:
>>> Short question: how can I grab the stdout written to by 
>>> C(++), i.e.
>>>
>>> C code:
>>>
>>> fwrite(...);
>>>
>>> std.cstream will be replaced sooner or later.
>>
>> I don't think I understand the question. stdout is the same 
>> file handle, doesn't matter whether that's using c++'s cout, 
>> c's stdout in stdio.h or D's std.stdio.stdout
>>
>>
>> writeln("hello world");
>>
>> is just short for
>>
>> stdout.writeln("hello world");
>>
>>
>> also, if you want c io functions, import core.stdc.stdio;
>>
>>
>> If you're wanting to grab the output from another process, 
>> take a look at std.process
>
> It's a small library written in C++. I can either load it 
> dynamically or incorporate it into my program. Either way, when 
> the C++ part does its job, I can see the correct output in the 
> console window, but I cannot grab it. After analyzing the C++ 
> code, it seems that it uses fwrite and writes to stdout.
>
> When I grab stdout I only get the output from the D part, not 
> from the C++ part.

What do you mean by "grab"?


More information about the Digitalmars-d-learn mailing list