创建子父进程,子进程将1.txt内容拷贝到2.txt中,父进程将3.txt内容拷贝到4.txt中。
#include<myhead.h>
// 定义文件拷贝函数
void copy_file(const char *txt_1, const char *txt_2) {
int fd, fd1;
char buff[1024];
int len;
// 打开源文件
fd = open("1.txt", O_RDONLY);
if (fd == -1) {
perror("打开源文件失败");
}
// 打开目标文件
fd1 = open("2.txt", O_WRONLY | O_CREAT | O_TRUNC, 0644);
if (fd1 == -1) {
perror("打开目标文件失败");
close(fd);
}
// 拷贝文件内容
while ((len= read(fd, buff, sizeof(buff))) > 0) {
if (write(fd1, buff, len) != len) {
perror("写入目标文件失败");
close(fd);
close(fd1);
}
}
// 关闭文件描述符
close(fd);
close(fd1);
}
int main() {
pid_t pid = fork();
if (pid == -1) {
perror("fork 失败");
return -1;
} else if (pid == 0) {
copy_file("1.txt", "2.txt");
printf("子进程完成文件拷贝\n");
} else {
copy_file("3.txt", "4.txt");
printf("父进程完成文件拷贝\n");
}
return 0;
}