我已经读过系统函数在内部使用execl,fork和wait函数.所以,我试图模拟系统的工作而不使用它.但我无法实现同样的工作.
当我们使用系统函数调用程序时,下面的代码(之后)system()函数调用也会执行.所以为了模拟系统功能,我在下面写了这段代码:
int main()
{
printf("In controller Start: %d\n\n",getpid());
system("./prog1");
printf("Forking New Process %d\n\n",fork());
printf("Process Id: %d\n\n",getpid());
execl("./infinite",0);
printf("In controller End\n\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在运行"无限"程序后的上述代码中,最后一行没有打印出来.即printf("In controller End\n\n");
如何打印最后一行并执行"无限"程序而不使用系统功能.
如果有人可以解释系统功能的逐步工作,如系统首先调用哪个函数等等,那将是很好的.
为什么执行不会持续到最后一行,如果我们做了一个简单的函数调用而不是execl就必须这样做.
脚注: - 无限:是使用C代码创建的二进制文件.