我正在尝试使用 mac 上的终端将内容从一个文件复制到另一个文件中。
当我尝试编译代码时,我不断收到此错误,我不确定原因。
这是我的代码:
#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: file too small (length=0) file'file2.txt' for architecture x86_64 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
最佳答案
您正在尝试使用编译器来运行程序。它不像 C 那样工作。您构建程序,然后运行它。
此外,C 不同于 Python 等解释型语言或 Java 等基于 VM 的语言。当您成功编译 C 程序时,您会得到一个可以直接运行的结果。不需要解释器或启动器。
例如,
gcc -o q2 q2.c
./q2 file1.txt file2.txt
./q2 file2.txt file3.txt
./q2 file7.txt file42.txt
关于使用 C 中的终端将内容从一个文件复制到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43078620/