_chsize_s
變更檔案大小。 此函式是的版本_chsize
,具有CRT中安全性功能中所述的安全性增強功能。
語法
errno_t _chsize_s(
int fd,
__int64 size
);
參數
fd
參考已開啟檔案的檔案描述項。
size
檔案的新長度 (位元組)。
傳回值
如果已成功變更檔案大小,則 _chsize_s
會傳回值 0。 非零傳回值表示發生錯誤︰如果鎖定所指定檔案的存取,則傳回值為 EACCES
;如果指定的檔案是唯讀或描述元無效,則為 EBADF
;如果裝置上沒有空間,則為 ENOSPC
;如果大小小於零,則為 EINVAL
。 errno
設為相同值。
如需這些傳回碼和其他傳回碼的詳細資訊,請參閱errno
、 _sys_errlist
_doserrno
和 _sys_nerr
。
備註
_chsize_s
函式會將與 fd
相關聯的檔案擴充或截斷至 size
所指定的長度。 檔案必須以允許寫入的模式開啟。 如果擴充檔案,則會附加 Null 字元 ('\0')。 如果檔案遭到截斷,則會遺失從縮短檔案結尾到檔案原始長度的所有資料。
_chsize_s
會採用 64 位元整數作為檔案大小,因此可以處理大於 4 GB 的檔案大小。 _chsize
會限制為 32 位元檔案大小。
這個函式會驗證它的參數。 如果 fd
不是有效的檔案描述元或大小小於零,則會叫用無效的參數處理程式,如參數驗證中所述。
根據預設,此函式的全域狀態會限定於應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態。
需求
常式 | 必要的標頭 | 選擇性標頭 |
---|---|---|
_chsize_s |
<io.h> | <errno.h> |
如需相容性詳細資訊,請參閱相容性。