В Unix я знаю процедуру: между fork () и exec () в дочернем процессе я закрываю все, кроме stdin / out / err, чтобы все открытые порты или файлы не передавались в программу, которую я хочу запустить.
Но как мне это сделать в Windows?В моем случае я реализую DLL на C / C ++, и мне нужно закрыть как некоторые файлы, которые я открыл (косвенно через некоторые объекты), так и сокеты, открытые приложением, загрузившим dll, чтобы эти дескрипторы открытых файлов не былиперешел в приложение я порождаю.Приложение не передает эти дескрипторы в DLL, так как мой код не нуждается в них ...
Пока код просто вызывает _spawnl (_P_NOWAIT, "foo.exe", "foo.exe", "arg1", "arg2", NULL);Visual Studio 2008, если это имеет значение.
Спасибо за вашу помощь.