通过在C中使用文件处理程序执行hello.c文件

时间:2018-10-01 06:19:48

标签: c file-handling

我最近在尝试用C运气,然后遇到了这个问题。

我有一个hello.c文件

代码1

#include<stdio.h>
#include<stdlib.h>
int main(){
    printf("Hello World");
    return 0;
}

我打开此文件并使用以下C程序(代码2)显示内容

代码2

#include<fcntl.h>
#include<stdio.h>    
int main() {

    FILE *fd;
    char ch;
    fd = fopen("/home/hello.c","r");

    if( fd != NULL ) {
        while((ch = getc( fd )) != EOF){
                putchar(ch);
        }
    }

    return 0;
}

但是,我希望此代码的输出为Hello World,即所读取的hello.c文件的输出。 怎么办?

4 个答案:

答案 0 :(得分:3)

要运行c文件,首先需要将其编译为机器代码,然后执行。

要编译它:运行gcc源文件-o可执行文件

要运行,请执行:可执行文件

要在C语言中执行相同的操作,请使用system()中的<stdlib.h>函数

const char* tempFile = "./tempfile";
const char* sourceFile = "hello.c";

const char compileCommand[255];
sprintf(compileCommand, "gcc %s -o %s", sourceFile, tempFile);

system(compileCommand);

system(tempFile);

此代码未经测试。

答案 1 :(得分:1)

您的“ CODE 2”将必须调用C编译器来编译“ CODE 1”,然后使用system()或操作系统提供的函数来运行它。

顺便说一句:它是int main(void)int main(int argc, char** argv),而不是int main()

答案 2 :(得分:1)

当前,在第二个程序中,您正在读取hello.c文件。因此,CODE2的输出将为hello.c内容。即#include<stdio.h>...

对于您需要的内容,在CODE1中,您需要将程序的输出写入一个单独的文件中(例如a.txt),然后在CODE2中读取a.txt

希望这是您进一步解决问题的充分提示。

答案 3 :(得分:0)

作为一般解决方案,您还可以尝试看看C解释器,例如Cling,然后尝试将其包含在项目中。