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的時候可以直接寫入,不需要裁剪。
