首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何复制当前流程?

如何复制当前流程?
EN

Stack Overflow用户
提问于 2012-10-01 03:31:12
回答 2查看 1.9K关注 0票数 2

在Windows中复制当前进程、生成另一个实例的最简单方法是什么?我知道Linux有fork(),但我所需要的就是在同一进程中再次运行main,可能会使用带有正确参数的CreateProcess()

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-01 05:07:31

正如@DavidHeffernan评论的那样:

代码语言:javascript
运行
复制
STARTUPINFO si;
::memset(&si, 0, sizeof(si));
si.cb = sizeof(si);
PROCESS_INFORMATION pi;
::CreateProcess(NULL, ::GetCommandLine(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
票数 1
EN

Stack Overflow用户

发布于 2012-10-13 06:36:53

Cygwin implements fork()在其托管环境中,但即使这样也是一个错综复杂的广场舞,让子进程赶上父进程,以准确地复制POSIX行为。

看起来您不需要模拟fork(),但需要模拟fork()/exec()。为此,收集环境变量、程序参数并将它们传递给CreateProcess()就足够了。还有一些选项可以将文件描述符复制到子级。请参阅CreateProcessdocumentation

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12664360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档