在 unix 中,我知道例程:在子进程中的 fork() 和 exec() 之间,我关闭了除 stdin/out/err 之外的所有内容,因此所有打开的端口或文件都不会传递给我要运行的程序。
但是我如何在 Windows 中做到这一点?在我的情况下,我在 C/C++ 中实现一个 DLL,我需要关闭我打开的一些文件(间接通过一些对象)和加载 dll 的应用程序打开的套接字,这样这些打开的文件句柄就不会传递给我正在生成的应用程序。该应用程序不会将这些句柄传递给 DLL,因为我的代码不需要那些...
到目前为止,代码只是调用了 _spawnl(_P_NOWAIT, "foo.exe", "foo.exe", "arg1", "arg2",NULL); Visual Studio 2008 如果这很重要。
谢谢你的帮助。