Pádraig Brady wrote:
Anything where you need to interact with the sub process like setting up files to communicate etc. is going to have portability issues. Even using execvp() is problematic I understand.
As long as the child doesn't touch parent memory that the parent needs, it should be OK. There is a memory leak in execvp in old glibc versions, but I expect that isn't something we need to worry about.
Last time I checked, vfork was significantly faster than fork when the parent process has a lot of memory, and was still worth using for its performance advantages.