简要对比C语言中的truncate()函数与ftruncate()函数_技术学院_宜昌市隼壹珍商贸有限公司

您好,欢迎访问宜昌市隼壹珍商贸有限公司

400 890 5375
当前位置: 主页 > 新闻动态 > 技术学院

简要对比C语言中的truncate()函数与ftruncate()函数

发布时间:2026-01-18  |  点击率:

C语言truncate()函数:改变文件大小
头文件:

#include <unistd.h>

定义函数:

int truncate(const char * path, off_t length);

函数说明:truncate()会将参数path 指定的文件大小改为参数length 指定的大小. 如果原来的文件大小比参数length 大, 则超过的部分会被删去.

返回值:执行成功则返回0, 失败返回-1, 错误原因存于errno.

错误代码:
1、EACCESS 参数path 所指定的文件无法存取。
2、EROFS 欲写入的文件存在于只读文件系统内。
3、EFAULT 参数path 指针超出可存取内存空间。
4、EINVAL 参数path 包含不合法字符。
5、ENAMETOOLONG 参数path 太长。
6、ENOTDIR 参数path 路径并非一目录。
7、EISDIR 参数path 指向一目录。
8、ETXTBUSY 参数path 所指的文件为共享程序, 而且正被执行中。
9、ELOOP 参数path 有过多符号连接问题。
10、EIO I/O 存取错误。

C语言ftruncate()函数:改变文件大小
头文件:

#include <unistd.h>

定义函数:

int ftruncate(int fd, off_t length);

函数说明:ftruncate()会将参数fd 指定的文件大小改为参数length 指定的大小。参数fd 为已打开的文件描述词,而且必须是以写入模式打开的文件。如果原来的文件大小比参数length 大,则超过的部分会被删去。

返回值:执行成功则返回0, 失败返回-1, 错误原因存于errno.

错误代码:
1、EBADF 参数fd 文件描述词为无效的或该文件已关闭。
2、EINVAL 参数fd 为一socket 并非文件, 或是该文件并非以写入模式打开。

全国统一服务电话

400 890 5375

电子邮箱:879577@qq.com

公司地址:宜昌市西陵区黄河路5号三峡明珠10栋1051室

咨询微信

TEL:13680874598