繁体   English   中英

使用C中的终端将内容从一个文件复制到另一个文件

[英]Copying contents from one file to another using the terminal in C

我正在尝试使用Mac上的终端将c中的内容从一个文件复制到另一个文件中。

当我尝试编译代码时,我一直收到此错误,我不确定为什么。

这是我的代码:

#include <stdio.h>
#include <stdarg.h>

int main(int argc, char *argv[])
{
    FILE *f1Ptr, *f2Ptr;
    char x;

    if(argc != 3)
    {
        printf("Incorrect number of arguments\n");
    }

    f1Ptr = fopen(argv[1], "r");
    f2Ptr = fopen(argv[2], "w");

    if(f1Ptr == NULL || f2Ptr == NULL)
    {
        puts("File could not be opened");
    }

    while(!feof(f1Ptr))
    {
        x = fgetc(f1Ptr);
        fputc(x, f2Ptr);
    }

    printf("File has been copied\n");

    fclose(f1Ptr);
    fclose(f2Ptr);

return 0;
}

这是错误

ld: file too small (length=0) file 'file2.txt' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

构建命令:“ gcc q2.c file1.txt file2.txt ld:对于架构x86_64 clang,文件太小(长度= 0)文件'file2.txt':错误:链接器命令失败,退出代码为1(使用-v查看调用)

您正在尝试使用编译器运行程序。 用C不能那样工作。先生成程序,然后运行它。

而且,C不像解释语言(如Python)或基于VM的语言(如Java)那样。 成功编译C程序后,您将获得可以直接运行的结果。 不需要解释器或启动器。

例如,

gcc -o q2 q2.c

./q2 file1.txt file2.txt 
./q2 file2.txt file3.txt 
./q2 file7.txt file42.txt 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM