2016-09-30 15 views
-4

Мне было интересно, если можно скомпилировать и построить и в конечном итоге запустить файл C из другого файла C (этот файл C в конечном итоге будет файлом системного вызова).Компиляция и построение файла C из программы C

т.е.

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

Есть ли какие-либо функции C, которые могут сделать это?

+2

Да, конечно, есть способ, но почему вы хотите это сделать? Вы знакомы с [Задачей XY] (http://xyproblem.info)? –

+1

Да, конечно, вы можете это сделать. Если вы разложите проблему и затем выполните поиск путей решения отдельных задач, вы увидите, что тривиально выполнять внешнюю программу в C (например, 'system()'). –

+0

@iharob Я реализую системный вызов, который будет принимать файл C, и выполняет этот файл, а затем возвращает некоторые данные в системный вызов для вычисления. – thedarkguy

ответ

1

Вы можете использовать функцию system() данной заголовком stdlib.h, например, так:

#include <stdlib.h> 

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

Вы можете увидеть здесь я компиляцию файла с именем cprog.c.

+0

'system()' не задано 'stdio.h', это от' stdlib.h' –

+0

Я отредактирую это ... –

+0

О, я ошибся. Очень жаль @MDXF – amanuel2