複製過程中顯示進度條
#include
#include
#include
#include
#include
#include
#include
#define io_size 1024*1024
/*實現檔案copy功能,把乙個檔案拷貝到另乙個檔案,如果檔案不存在則建立*/
intmain
(int argc,
char
const
*ar**)
//開啟目標檔案
dest_fd =
open
(ar**[2]
,o_wronly | o_creat|o_trunc, s_irusr|s_iwusr|s_irgrp|s_iroth);if
(dest_fd ==-1
)
file_size =
lseek
(src_fd,0,
seek_end);
//讀取文字的結束的標誌
lseek
(src_fd,0,
seek_set);
//記錄讀取開始的位置
//申請記憶體空間
buf =
malloc
(io_size);if
(buf ==
null
)printf
("\n");
//迴圈讀取原檔案的資料
while(1
)else
if(rd_ret ==0)
wr_ret =
write
(dest_fd, buf, rd_ret);if
(wr_ret ==-1
)
cur_copy_size+
=wr_ret;
printf
("\033[1a當前複製了%.2lf%%\n"
,cur_copy_size/
(double
)file_size*
100);}
free
(buf)
;//釋放空間
//關閉目標檔案
ret =
close
(dest_fd);if
(ret ==-1
)//關閉原始檔
ret =
close
(src_fd);if
(ret ==-1
)return0;
}
#include
#include
#include
#include
#include
#include
#include
#define io_size 512
#define read_block_numb 2000
/*實現檔案copy功能,把乙個檔案拷貝到另乙個檔案,如果檔案不存在則建立*/
intmain
(int argc,
char
const
*ar**)
//開啟目標檔案
dest_fp =
fopen
(ar**[2]
,"w");
if(dest_fp ==
null
)//申請記憶體空間
buf =
calloc
(read_block_numb, io_size);if
(buf ==
null
)//迴圈讀取原檔案的資料
while(1
)break;}
elseif(
ferror
(src_fp))}
wr_ret =
fwrite
(buf, io_size, read_block_numb, dest_fp);if
(ferror
(dest_fp))}
printf
("已成功複製\n");
free
(buf)
;//釋放空間
//關閉目標檔案
ret =
fclose
(dest_fp);if
(ret ==
eof)
//關閉原始檔
ret =
fclose
(src_fp);if
(ret ==
eof)
return0;
}
基於Linux的I O操作
如 mathod 01.c include include include include include include int main void else if close fd perror close exit 1 else exit 0 read write及lseek函式 語法格式 如...
Linux檔案 檔案IO概述
posix portable operating system inte ce,可移植作業系統介面規範 標準最初由ieee institute of electrical and electronics engineers,電氣和電子工程師協會,是目前最大的全球性非營利性專業技術學會 制定,目的是提...
linux檔案IO的系統IO和標準IO理解
儲存在硬碟等物理儲存器上的檔案如何進行讀取等操作?如果我們直接對其進行讀寫等操作,也是可以滴,不過這就需要很費時費力,需要對硬體的物理構造有清楚的了解,很明顯,這很影響開發效率。當然也不排除某些特殊場合需要用到,但是大多數情況下,這種 低階的 操作,早已經被人們開發出來的乙個叫做 作業系統 的東西給...