C++裁剪文件,截斷文件,_chsize()


  

errno_t _chsize_s( 
   int fd,
   __int64 size 
);

詳見msdn知識庫

_chsize將文件裁剪為指定大小,大小的度量方法與

long ftell(FILE * fp)

度量方法相同

第一個參數是文件信息句柄

open() close() 對應的是低級io,內存中沒有緩存,直接對硬盤字符進行操作

fopen() fclose()對應的是高級io,內存中有緩存,在文件關閉(自動關閉前)不會寫入硬盤

對於文件信息句柄,高級io通過

FILE * fopen(const char *file_name,const char *mode)

封裝為指針(類指針)FILE,而低級io將文件句柄定義為int 型參數(磁盤扇區位號對應的唯一內存號)

_chsize()屬於低級io ,需要使用

int _fileno( 
   FILE *stream 
);

將FILE指針轉換為低級io標識符,然后傳給_chsize()函數進行操作

 

注意:

_chsize()在feof(fp)==1的情況下不能使用(也就是文件大小和pos值相同時)

所以,文件指針走到feof()==1的時候可以直接寫入,不需要裁剪。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM