POSIX规范lseek()规定您可以设置超出文件末尾的位置:
lseek() 函数应允许将文件偏移量设置为超出文件中现有数据的末尾。
off_t它仅在结果位置超出从返回的变量类型的范围时才会抱怨lseek()。似乎没有指定错误消息来指示“超出特定于进程的限制”或“超出文件系统本身的容量”之类的内容。
但是,根据 POSIX ,在使用 a 进行查找之后尝试扩展文件write()可能会返回EFBIG错误代码。最好的办法是实际尝试一下,看看行为是什么,特别是因为 Linux 不一定在所有情况下都符合 POSIX - 换句话说,符合 POSIX 的 UNIX 系统和 Linux 之间的行为可能不同。
当前文件结尾之后不得进行任何数据传输。如果起始位置位于文件末尾或之后,则返回 0。
因此,您应该返回零,因为根据定义,如果您完成了lseek()超出文件系统容量的操作,那么您肯定超出了文件末尾(您不能创建大于文件系统允许的文件)。
| 归档时间: |
|
| 查看次数: |
4579 次 |
| 最近记录: |