【问题标题】:Compiling and building a C file from a C program [closed]从 C 程序编译和构建 C 文件 [关闭]
【发布时间】:2017-02-08 11:40:56
【问题描述】:

我想知道是否可以编译和构建,并最终从另一个 C 文件运行一个 C 文件(这个 C 文件最终将是一个系统调用文件)。

即

...
// Calling gcc(?) or something to compile and build the executable 
/* running the executable */
// Executable ends and return to this file
...

是否有任何 C 函数可以做到这一点?

【问题讨论】:

  • 是的,当然有办法,但是你为什么要这样做呢?你熟悉XY Problem吗?
  • 是的,您当然可以这样做。如果你分解问题,然后寻找解决单个任务的方法,你会发现在 C 中执行外部程序是微不足道的(例如system())。
  • @iharob 我正在实现一个系统调用,它将接收一个 C 文件并执行该文件,然后将一些数据返回给系统调用进行计算。
  • @thedarkguy 这不是应该使用c 的方式。你不能依赖这个想法的结果。你编写一个程序,然后编译并运行它。如果您想要某种c 解释器,您正在尝试做一些不能很好地恕我直言。
  • @thedarkguy:什么是“xv6”,为什么您的问题中没有标签/提及?这个问题很快就会结束;更多信息和具体问题可能有助于避免这种情况并获得答案。

标签: c compilation system system-calls xv6


【解决方案1】:

您可以使用标题stdlib.h 给出的system() 函数,如下所示:

#include <stdlib.h>

int main()
{
    system("gcc cprog.c -o cprog");
    return 0;
}

你可以在这里看到我正在编译一个名为cprog.c的文件。

【讨论】:

  • system() 不是stdio.h 给出的,它来自stdlib.h
  • 我会编辑那个...
  • 哦,我被误导了。非常抱歉@MDXF
  • 没问题,乐于助人
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-29
  • 1970-01-01
  • 2013-02-08
  • 1970-01-01
  • 2018-10-18
  • 1970-01-01
相关资源
最近更新 更多