写一个C语言系统调用的文件拷贝
时间: 2024-05-03 15:20:09 浏览: 190
C语言编写的文件拷贝程序.rar_C语言编写的文件拷贝程序_文件拷贝
的函数。
好的,以下是一个简单的C语言系统调用的文件拷贝函数:
```c
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc, char* argv[]) {
if(argc < 3) {
printf("Usage: %s source_file target_file\n", argv[0]);
exit(EXIT_FAILURE);
}
char* source_file = argv[1];
char* target_file = argv[2];
int fd_source = open(source_file, O_RDONLY);
if(fd_source == -1) {
perror("open source_file");
exit(EXIT_FAILURE);
}
int fd_target = open(target_file, O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR);
if(fd_target == -1) {
perror("open target_file");
exit(EXIT_FAILURE);
}
char buf[BUFSIZ];
ssize_t read_bytes, write_bytes;
while((read_bytes = read(fd_source, buf, BUFSIZ)) > 0) {
write_bytes = write(fd_target, buf, read_bytes);
if(write_bytes != read_bytes) {
perror("write error");
exit(EXIT_FAILURE);
}
}
close(fd_source);
close(fd_target);
printf("Copy %s to %s done!\n", source_file, target_file);
return 0;
}
```
这个函数使用了Linux下文件操作相关的系统调用函数`open`, `read`, `write`, `close`,实现了将源文件拷贝到目标文件的功能。其中,`open`函数打开文件,`read`函数读取文件内容,`write`函数写入文件,`close`函数关闭文件。函数参数为源文件名和目标文件名。
注意,这是一个最简单的文件拷贝实现,没有进行错误检查与错误处理,实际应用中需要做出相应的改进。
阅读全文