Нет завершающего аналога функции VC ++ _spawnl()
, но он возвращает Win32 HANDLE
, который вы можете использовать:
HANDLE handle = (HANDLE)_spawnl(...);
TerminateProcess(handle, exit_code);
Обратите внимание, что он возвращает HANDLE
, только если вы вызываете его с одним из NOWAIT
аргументов. Если нет, он вернет код завершения процесса.
Конечно, гораздо лучше, если вы сможете каким-то образом сообщить процессу, что он должен завершиться изящно. TerminateProcess
предотвратит вызов кода очистки.
(И в качестве небольшого примечания: несмотря на то, что MSDN говорит о том, что spawnl()
является устаревшей функцией POSIX, она на самом деле никогда не была в каком-либо стандарте POSIX! Насколько я знаю, это происходит из QNX.)