fork() is commonly used where you want to communicate to the sub-process using a pipe. Given how common piping from one process to another is in Unix it's not surprising that fork() was implemented (nor that fork then exec was common).
It's true that Windows tends not to use this paradigm, but it is common in the Unix world specifically because of the simple ability to share file handles between a parent and child process. And also the parent and child processes share most everything else (for example, they have the same environment settings).
It's true that Windows tends not to use this paradigm, but it is common in the Unix world specifically because of the simple ability to share file handles between a parent and child process. And also the parent and child processes share most everything else (for example, they have the same environment settings).