_chsize_s

更改文件大小。 此函数的版本是 _chsize,具有 CRT 中的安全功能中所述的安全增强功能。

语法

errno_t _chsize_s(
   int fd,
   __int64 size
);

参数

fd
引用打开的文件的文件描述符。

size
文件的新长度(以字节为单位)。

返回值

如果已成功更改文件大小,则 _chsize_s 返回值 0。 非零返回值指示错误:如果指定的文件针对访问权限锁定,则返回值是 EACCES,如果指定的文件是只读文件或者该描述符无效,则返回值是 EBADF,如果设备上没有可用空间,则返回值是 ENOSPC,或者如果大小小于零,则返回值是 EINVAL。 将 errno 设置为相同的值。

有关这些和其他的返回代码的详细信息,请参阅 errno_doserrno_sys_errlist_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