Calling external programs from D
Tydr Schnubbis
fake at address.dude
Wed Apr 5 10:22:25 PDT 2006
Tydr Schnubbis wrote:
> Regan Heath wrote:
>> On Wed, 05 Apr 2006 00:36:45 -0700, kris <foo at bar.com> wrote:
>>> Tydr Schnubbis wrote:
>>>> I'm making a gui app with DWT, and I need a way to run an external,
>>>> command line tool and get its output. Either directly from the tool's
>>>> stdout, or by having it write to a file first.
>>>> I'm working on windows. The system() function is unusable because it
>>>> opens a new command line window when it starts the tool. That you can
>>>> get it to close the window again really fast by using 'start' is not
>>>> good enough
>>>> It doesn't have to be a portable way. If someone can tell me how to
>>>> call _popen or something in msvcrt.dll, I would be happy.
>>>
>>> I understand Regan posted a module to do exactly what you want. Maybe
>>> he'll see this, or you may be able to dig it up again from the archives
>>> (or via google upon the digitalmars site). Reckon the keywords would be
>>> something like ~ win32 pipe process regan
>>
>> Here they/it is :)
>> Regan
>
> Thanks!
>
> But it doesn't work for me. Seems that it blocks the new process from
> acessing the network. Any ideas what to do?
Here's a minimal test to show the problem:
import lib.process;
import std.stdio;
void main()
{
Process proc;
proc = new Process("ping google.com");
writef(proc.readLine());
}
Compile: "dmd test.d lib/process.d lib/pipestream.d"
Output: "Ping request could not find host google.com. Please check the
name and try again."
;)
More information about the Digitalmars-d-learn
mailing list