Share via


_chsize_s

變更檔案大小。 此函式是 的版本 _chsize ,具有 CRT 中安全性功能中所述 的安全性增強功能。

語法

errno_t _chsize_s(
   int fd,
   __int64 size
);

參數

fd
參考已開啟檔案的檔案描述項。

size
檔案的新長度 (位元組)。

傳回值

如果已成功變更檔案大小,則 _chsize_s 會傳回值 0。 非零傳回值表示發生錯誤︰如果鎖定所指定檔案的存取,則傳回值為 EACCES;如果指定的檔案是唯讀或描述元無效,則為 EBADF;如果裝置上沒有空間,則為 ENOSPC;如果大小小於零,則為 EINVALerrno 設為相同值。

如需這些傳回碼和其他傳回碼的詳細資訊,請參閱 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>

如需相容性詳細資訊,請參閱相容性

另請參閱

檔案處理
_chsize
_close
_creat, _wcreat
_open, _wopen