Is there a way to not wait for a system() command to finish? (in c)
system()
simply passes its argument to the shell (on Unix-like systems, usually /bin/sh
).
Try this:
int a = system("python -m plotter &");
Of course the value returned by system()
won't be the exit status of the python script, since it won't have finished yet.
This is likely to work only on Unix-like systems (probably including MacOS); in particular, it probably won't work on MS Windows, unless you're running under Cygwin.
On Windows, system()
probably invokes cmd.exe
, which doesn't accept commands with the same syntax used on Unix-like systems. But the Windows start
command should do the job:
int a = system("start python -m plotter");
As long as you're writing Windows-specific code (start
won't work on Unix unless you happen to have a start
command in your $PATH
), you might consider using some lower-level Windows feature, perhaps by calling StartProcess
. That's more complicated, but it's likely to give you more control over how the process executes. On the other hand, if system()
meets your requirements, you might as well use it.
I believe if you add a '&' to the end of the command it will work. '&' tells the command to run in the background
int a = system("python -m plotter &");