【发布时间】:2012-08-09 20:02:47
【问题描述】:
我收到了一个想要在 Windows 下运行/编译的 Unix 工具。看了之后,我发现它使用了fork 和execv 等等。我现在想了解它的作用以及如何在 Windows 中实现这一点。
代码的作用不止于此,因此请不要评论此代码是否有意义。
pid = fork();
if(pid==0){
execv("/usr/bin/java",args);
}
如果我正确地解释了这一点,那么它只会使用args 数组中提供的参数调用java。因此,在 Windows 中,这可以通过 system() 或 CreateProcess 之类的方式轻松实现(我没有阅读如何 这样做,只是知道可以做到)。
但这是我的问题:如果我理解正确,这段代码会分叉并调用execv,因为execv 不会返回,如果不先分叉,我的程序将无法完成。这是正确的吗?
【问题讨论】: