我收到了一个想要在 Windows 下运行/编译的 Unix 工具。看了之后,我看到它使用fork
和execv
其他。我现在想了解它的作用以及如何在 Windows 中实现这一点。
该代码的功能不止于此,因此请不要评论此代码是否有意义。
pid = fork();
if(pid==0){
execv("/usr/bin/java",args);
}
如果我正确地解释了这一点,那么这个只会做一些事情,比如使用数组java
中提供的参数进行调用。args
所以在 Windows 中,这可以很容易地通过类似system()
or的东西来实现CreateProcess
(我没有读过如何做到这一点,只知道它可以做到)。
但这是我的问题:如果我理解正确,这段代码会分叉并调用execv
,因为execv
它不会返回,如果不先分叉,我的程序就不会完成。它是否正确?