我读过系统函数在内部使用 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;
}
在运行“无限”程序后的上述代码中,最后一行没有被打印出来。IEprintf("In controller End\n\n");
为了打印最后一行并在不使用系统函数的情况下执行“无限”程序该怎么做。
如果有人可以逐步解释系统功能的工作原理,例如系统首先调用哪个功能等等,那就太好了。
如果我们进行了除 execl 之外的简单函数调用,为什么执行不会继续到最后一行。
脚注:- 无限:是使用 C 代码创建的二进制文件。