[英]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.