Jah*_*Jah 1 c linux file errno system-calls
我注意到当我尝试寻找更多的字节而不是off_t可以表示我得到一个EOVERFLOW错误.如何在off_t中寻找更多的数字?
启用大文件支持.
简而言之,对于使用LFS,您可以选择以下任一项:
- 使用"
gcc -D_FILE_OFFSET_BITS=64" 编译程序.这会强制所有文件访问调用使用64位变体.有几种类型也会改变,例如off_t变成off64_t.因此,始终使用正确的类型并且不使用例如int代替而非常重要off_t.对于与其他平台的可移植性,您应该使用getconf LFS_CFLAGS哪些平台将-D_FILE_OFFSET_BITS=64在Linux平台上返回,但可能会返回其他平台,例如Solaris.对于链接,您应该使用通过其报告的链接标志getconf LFS_LDFLAGS.在Linux系统上,您不需要特殊的链接标志.- 定义
_LARGEFILE_SOURCE和_LARGEFILE64_SOURCE.使用这些定义,您可以直接使用open64等LFS函数.- 使用
O_LARGEFILE标志open来操作大文件.