在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,如果重要的话。
感谢您的帮助。
答案 0 :(得分:0)
如果是这样,也许您想要查看CreateProcess和StartupInfo - 这些可以更好地控制传递/继承到新进程的内容