作业:
创建子父进程,子进程将1.txt内容拷贝到2.txt中,父进程将3.txt内容拷贝到4.txt中
程序代码:
#include <myhead.h>void copy(const char *src, const char *dst) {
int fd1 = open(src, O_RDONLY);
if (fd1 < 0) {
perror("open src");
return -1;
}
int fd2 = open(dst, O_WRONLY | O_CREAT | O_TRUNC, 0644);
if (fd2 < 0) {
perror("open dst");
close(fd1);
return -1;
}
char buffer[1024];
ssize_t len;
while ((len = read(fd1, buffer, sizeof(buffer))) > 0)
{
if (write(fd2, buffer, len) != len)
{
perror("write");
close(fd1);
close(fd2);
return -1;
}
}
if (len < 0) {
perror("read");
}
close(fd1);
close(fd2);
}
int main(int argc, const char *argv[])
{
pid_t pid = fork();
if (pid < 0) {
perror("fork");
return -1;
} else if (pid > 0)
{
// 父进程
copy("3.txt", "4.txt");
wait(NULL); // 等待子进程完成
} else
{
// 子进程
copy("1.txt", "2.txt");
}
return 0;
}