mmap多程序拷貝檔案

2021-10-05 23:58:43 字數 848 閱讀 1929

#include#include#include#include#include#include#include#includeusing namespace std;

int main(int argc, char * ar**)

stat(ar**[1], &buf);

int len = buf.st_size;

//這裡必須要有讀許可權,因為mmap進行對映的時候實際就是先讀一次檔案

fd_w = open(ar**[2], o_rdwr | o_creat, 0644); //需要複製的檔案

if(-1 == fd_w)

if(truncate(ar**[2], len) < 0) //給檔案擴容

int each_size = len / progress;

int lase_size = len % progress;

p = (char *)mmap(null, len, prot_write , map_shared, fd_w, 0);

if( p == map_failed)

for(i=0; i0)

n--;

}while(n>0); //**子程序

cout<<"all progress finished\n";

close(fd_r);

close(fd_w);

munmap(p, len);

}cout<<"copy file finish\n";

return 0;

}

總體思路是,把整個檔案均分,然後每個子程序拷貝一部分,不過這個程式的做法似乎還有改進的空間,等以後做完了再貼出來給大家看

多程序檔案拷貝

下面用程式實現這樣的功能 有乙個檔案的內容需要拷貝到另乙個檔案中,以前的做法是用乙個程序來完成,下面要做的是,是兩個程序同時做這件事,乙個程序負責一半,如父程序負責拷貝檔案的前半段,子程序負責拷貝檔案的後半段。下面看一下程式的流程以及需要注意的問題 其中 要注意的是當父程序呼叫fork函式建立子程序...

多程序實現檔案拷貝

import multiprocessing import os import shutil 拷貝檔案任務 filename 檔名 src dir 源目錄 dst dir 目標目錄 def copy file file name,src dir,dst dir 原始檔的路徑 src file pat...

檔案拷貝器之多程序

import osimport multiprocessing import time,random 檔案拷貝器 1.取得原始檔 2.直接命名目標資料夾,在原檔案加 副本 3.建立目標檔案將愛 4.取得要拷貝的資料夾中的所有檔名 5.通過程序池去執行每乙個檔案拷貝任務 6.準備乙個還是你好俗,實現檔...