[問題] 快速複製檔案

看板C_and_CPP (C/C++)作者 (迪歐麥斯威爾)時間13年前 (2012/09/11 19:11), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/1
開發平台(Platform): GCC, Linux 一開始寫程式,複製檔案的寫法應該是這樣 while(!eof) { read(fd1, buf, BUFSIZE); write(fd2, buf, BUFSIZE); } 但是這樣就浪費了寫檔案的這段時間(read沒有在做事) 所以我就用兩個thread和ring buffer來改善 一個thread負責讀資料到buffer,另一個負責把資料寫到檔案 但是這樣要處理很多東西,同步的問題(mutex) 讀寫速度不一致的問題(沒資料時寫檔的thread要 block 住) buffer快滿了的問題(讀檔的thread要 block 住)…… 找了很多資料,東湊西湊的,雖然是寫出來了,但是code變的很醜,完全是三流的寫法 所以想請問一下有沒有類似的open source的linux tool可以讓我研究的 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.147.141.118 ※ 編輯: dbzgtgwduo 來自: 122.147.141.118 (09/11 19:21) ※ 編輯: dbzgtgwduo 來自: 122.147.141.118 (09/11 19:21) ※ 編輯: dbzgtgwduo 來自: 122.147.141.118 (09/11 19:23)

09/11 20:00, , 1F
http://tinyurl.com/8eapgnp 可參考FastCopy的原始碼
09/11 20:00, 1F

09/11 20:01, , 2F

09/11 20:03, , 3F
我只知道system("copy name1 name2 -y")
09/11 20:03, 3F

09/16 21:17, , 4F
linux下面的話,你考慮看看mmap...y
09/16 21:17, 4F
文章代碼(AID): #1GJnnqv5 (C_and_CPP)
文章代碼(AID): #1GJnnqv5 (C_and_CPP)