system() simply passes its argument to the shell (on Unix-like systems, usually
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.
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.