一
首先需要一个结构体
这个结构体应当拥有
(1)源文件的句柄
(2)目标文件的句柄
(3)写文件的起始位置
(4)写文件的终止位置
二
每一个结构体代表了文件的一部分
如果说把文件分成了5份,那就应该定义5个结构体,然后求出文件的大小,把文件的大小分成五份,
然后记录这一部分应当从文件的何处拷贝到何处,以及目标文件和源文件的句柄
三
开始定义线程内的函数,通过lseek函数找到应当找到的位置
然后开始拷贝就好了
以下是我参照别人代码自己实现的多线程拷贝,但不知道为什么有时候会拷贝失误一下下,但是总体是ok的
#include <pthread.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>