#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#define BUFFER_SIZE 1024
int main()
{
char buf[BUFFER_SIZE];
const char *source_path = "C:\\Users\\16328\\Documents\\source2.dat"; // 根据实际情况修改路径
const char *target_path = "C:\\Users\\16328\\Documents\\target2.dat";
int source_fd, target_fd;
ssize_t num_read;
// 打开源文件
if ((source_fd = open(source_path, O_RDONLY)) == -1)
{
perror("Error in opening source file");
exit(EXIT_FAILURE);
}
// 创建目标文件
if ((target_fd = open(target_path, O_WRONLY | O_CREAT | O_TRUNC, 0666)) == -1)
{
perror("Error in creating target file");
exit(EXIT_FAILURE);
}
// 读取源文件并写入目标文件
while ((num_read = read(source_fd, buf, BUFFER_SIZE)) > 0)
{
if (write(target_fd, buf, num_read) != num_read)
{
perror("Error in writing to target file");
exit(EXIT_FAILURE);
}
}
// 检查是否读写出错
if (num_read == -1)
{
perror("Error in reading source file");
exit(EXIT_FAILURE);
}
// 关闭源文件和目标文件
if (close(source_fd) == -1)
{
perror("Error in closing source file");
exit(EXIT_FAILURE);
}
if (close(target_fd) == -1)
{
perror("Error in closing target file");
exit(EXIT_FAILURE);
}
printf("Success in backing up source file to target file.\n");
return 0;
}