在我的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/

10-15 01:24