On Windows in C#, I can launch an external program from within my code by calling Process.Start(), which starts the process and returns its ID. This is important because I am not forking my own process, and I might have to kill the process later.
I have looked at exec(), fork() and many other things under Linux in C++ but none of those do quite the same thing. For example, system() blocks while the program runs, and fork() duplicates my whole process just so I can run another task.
Can someone tell me what the equivalent is?