_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> |
有关兼容性的详细信息,请参阅 兼容性。