...
On UNIX-based systems child processes are typically spawned using a form of fork() and exec() and the child process always receives copies of its parent's 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 bases. The Additionally, 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.
...