handle表示檔案句柄,size表示要設定的大小,返回值為執行該函式後檔案的大小,正常情況應該等於size。
基本介紹
- 外文名:chsize
- 功 能:改變檔案大小、為檔案預分配空間
- 頭檔案:io.h
- 系 統:Win95, WinNT
函式概述,函式原型,功能,參數值,返回值,描述,程式例,
函式概述
函式原型
int chsize(int handle, long size);
功能
改變檔案大小,為檔案預分配空間等。
參數值
handle
已打開的檔案句柄。
size
新的檔案長度,用位元組表示。
返回值
chsize 當檔案大小被成功改變時返回 0 值,當發生錯誤時返回 -1。
描述
chsize 函式延展或截短 handle 所關聯的檔案,將其大小重新改變為 size 的值(以位元組)。檔案必須以具有寫許可權的模式打開。當檔案被延展時,會以 NULL 字元('\0')在檔案尾追加。如果檔案被截短,則截短後的檔案,其新大小長度之後的原檔案的內容將會丟失。
程式例
/* CHSIZE.C: 這個程式使用 _filelength 在改變檔案大小之前和之後來獲取檔案大小。 */#include <io.h>#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#include <stdio.h>void main( void ){ int fh, result; unsigned int nbytes = BUFSIZ; /* Open a file */ if( (fh = open( "data", _O_RDWR | _O_CREAT, _S_IREAD | _S_IWRITE )) != -1 ) { printf( "File length before: %ld\n", _filelength( fh ) ); if( ( result = chsize( fh, 329678 ) ) == 0 ) printf( "Size successfully changed\n" ); else printf( "Problem in changing the size\n" ); printf( "File length after: %ld\n", filelength( fh ) ); close( fh ); }}
上面的代碼輸出結果應該為:
File length before: 0
Size successfully changed
File length after: 329678