c - Unix - C - 使用 exec 执行相同的程序

标签 c exec

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

相关文章:

c - 将 char 数组的元素传递到另一个位置

c - 如何在C中创建空链表?

php - 通过 PHP exec 传递变量

c - 执行未从 exec 返回

c - (C) Scanf - 输入每次都为 0

c++ - 奇怪的 typedef 定义 C++

c - 如何让 gcc 警告返回局部变量的地址?

php - 捕获/抑制来自 php exec 的所有输出,包括 stderr

Php system()/exec() 不返回输出

c - 如何将文件内容重定向到标准输入,为什么 exec 函数不起作用?