c / c ++,mfc:不将打开的文件/句柄传递给生成的进程

时间:2010-10-07 09:48:28

标签: visual-studio-2008 mfc spawn

在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,如果重要的话。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

嗯 - 很抱歉在这里猜一点,但你确定Windows中的spawnl传递打开的文件句柄吗?

如果是这样,也许您想要查看CreateProcess和StartupInfo - 这些可以更好地控制传递/继承到新进程的内容