Запуск другого файла в C - PullRequest
0 голосов
/ 03 июня 2019

Я делаю программу, и она должна запускать файл в другом каталоге (/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 ]

1 голос
/ 05 июня 2019

из системы () вы можете запустить .exe насколько я знаю не .c. Просто скомпилируйте .c файл, который вы хотите запустить, поместите его в ту же папку, что и файл, содержащий main () например. second_program.c-> compiled-> скопировать сгенерированный файл .exe в ту же папку и затем использовать систему (second_program.exe)

или вам нужно создать два файла second_program.h для заголовочных файлов и прототипов функций и т. Д. и second_program.c для их определения, а затем используйте include если файлы не находятся в той же папке, что и main () Затем вы должны добавить местоположение second_program в свойствах вашей программы или добавьте include "second_program.h", если файлы существуют в той же папке

1 голос
/ 04 июня 2019

Чтобы получить функцию runme() из другого файла для передачи на главную, вам необходимо создать файл заголовка с прототипом функции 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 {путь} /runme.c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...