...
On UNIX-based systems child processes are typically spawned using a form of fork() and exec(). The child process always receives copies of its parents file descriptors. Under Microsoft Windows, the CreateProcess() function is typically used to start a child process. In Windows file handle inheritance is determined on a per-file and per-process basesbases. The CreateProcess() function itself provides a mechanism to limit file handle inheritance. As a result, the child process spawned by CreateProcess() may not have access to the open file handles of the parent process.
...