linuxc语言文件操作使用系统函数实现文件的复制
时间: 2023-12-24 15:02:39 浏览: 151
在 Linux C 语言中,可以使用系统函数来实现文件的复制。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
if (argc != 3) {
fprintf(stderr, "Usage: %s <source> <destination>\n", argv[0]);
exit(1);
}
// 打开源文件
FILE *fp_src = fopen(argv[1], "rb");
if (fp_src == NULL) {
perror("fopen");
exit(1);
}
// 创建目标文件
FILE *fp_dst = fopen(argv[2], "wb");
if (fp_dst == NULL) {
perror("fopen");
exit(1);
}
// 复制文件
char buffer[1024];
size_t nread;
while ((nread = fread(buffer, 1, sizeof(buffer), fp_src)) > 0) {
fwrite(buffer, 1, nread, fp_dst);
}
// 关闭文件
fclose(fp_src);
fclose(fp_dst);
return 0;
}
```
这个程序的使用方法是:
```
$ ./copyfile <source> <destination>
```
其中 `<source>` 是源文件的路径,`<destination>` 是目标文件的路径。
程序首先检查命令行参数的个数是否正确,如果不正确则输出用法信息并退出。然后打开源文件和目标文件,如果文件打开失败则输出错误信息并退出。接下来,程序使用一个缓冲区来读取源文件中的数据,并将其写入目标文件中。最后关闭文件并退出程序。
需要注意的是,这个程序只能复制普通文件,不能复制目录。如果需要复制目录,则需要使用递归的方式遍历目录树,并对每个文件进行复制。
阅读全文