在我的 C 程序中,我想递归调用我的程序的源代码,如下所示:
#include <stdio.h>
#include <unistd.h>
int main() {
printf("Hello World\n");
execlp("a.out", "a.out", NULL);
return 0;
}
假设a.out是上述源码编译的结果,通过使用
gcc program.c
我得到以下输出:
Hello World
就好像我没有写 execlp 行一样。 ¿这有什么问题吗?我想要实现的输出如下:
Hello World
Hello World
Hello World
Hello World
...
显然,在我的程序中,这将是一个停止条件,但为了简单起见,我现在不考虑它。
那么,如何才能做到呢? 谢谢。
最佳答案
要生成这种输出,您应该使用循环而不是递归。正如您所提到的,您将需要添加停止条件...
#include <stdio.h>
int main() {
while (true) // To do: add a stop condition.
{
printf("Hello World\n");
}
return 0;
}
关于c - Unix - C - 使用 exec 执行相同的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36132070/