在C中运行另一个文件

时间:2019-06-03 15:46:29

标签: c

我正在编写一个程序,它应该在另一个目录(/files/runme.c)中运行一个文件。如何在C中运行此文件?

我尝试了system()函数,但这不起作用。

MAIN.c:

#include <stdio.h>
#include <stdlib.h>
int main() {
 system("runme.c");
 return 0;
}

runme.c:

#include <stdio.h>
int runme() {
 printf("hello world");
}

我的预期结果是:

  

你好世界

我得到:

  

退出状态-1

我希望它运行runme.c内容中的所有内容。我该怎么做(在Windows和Linux上)?

2 个答案:

答案 0 :(得分:1)

要从另一个文件中获取runme()函数以传递给您的main,您需要创建一个包含runme()函数原型的头文件,将此头文件包含在main中.c并使用这两个文件进行编译。

main.h:

int runme(void);

main.c

#include <stdio.h>
#include <stdlib.h>
#include "main.h" //main.h needs to be in the same directory as main.c

int main(void) {
   runme();
   return 0;
}

runme.c

#include <stdio.h>

int runme() {
   printf("hello world");
}

最终编译:

gcc main.c {path} /runme.c

答案 1 :(得分:1)

从system()可以运行.exe 据我所知.c。 只需编译要运行的.c文件,并将其与包含main()的文件放在同一文件夹中 例如。 second_program.c->已编译->将生成的.exe文件复制到同一文件夹,然后使用系统(second_program.exe)

或者您必须为头文件和函数原型等创建两个文件second_program.h 和second_program.c作为定义,然后使用include 如果文件与main()不在同一个文件夹中 那么您必须在程序属性中添加second_program的位置 或添加包含“ second_program.h”的文件(如果文件位于同一文件夹中)