I am developing a SKILL program which has to interact with an executable written in C++. How can I run the external command, and get at the results?
I have tried the following, which was suggested by another poster:
system("program arg1 arg2...")
but that doesn’t seem to work.
From: Damien Diederen <email@example.com>
Date: Wed, 16 Jan 2013 00:54:04 +0100
Hi mostly anonymous,
I can confirm that
system("program arg1 arg2...") should work.
One thing which might be going wrong is that under Windows, reverse solidus (
\) characters have to be doubled in literal strings, as they otherwise clash with the SKILL escape mechanism:
system("e:\\work\\program.exe arg1 arg2...")
Another thing to watch out for is spaces in the path to the binary; I’m not even sure about the proper quoting mechanism under Windows… the following might work, but I’d double check the docs for
system("\"c:\\Program Files\\My\\Program.exe\" arg1 arg2...")
(And similarly for the arguments.)
Another solution, which offers more control—but suffers from the same quoting madness—would be to use the
ipc* family of functions (
ipcBeginProcess, etc.). I have put together a small example at:
and you will find a complete package attached to this message (tested under Linux). [Unpacked here -Ed.]
Hope this helps,