我注意到当我尝试寻找更多的字节时,off_t可以代表我得到的 一个EOVERFLOW错误。 我怎样才能在off_t中寻找更多的数字?
答案 0 :(得分:6)
简而言之,使用LFS可以选择以下任一项:
- 使用“
gcc -D_FILE_OFFSET_BITS=64
”编译您的程序。这会强制所有文件访问调用使用64位变体。几种类型也会改变,例如off_t
变为off64_t
。因此,始终使用正确的类型并且不使用例如正确的类型是很重要的。int
代替off_t
。为了便于与其他平台一起使用,您应该使用getconf LFS_CFLAGS
,它将在Linux平台上返回-D_FILE_OFFSET_BITS=64
,但可能会返回其他内容,例如: Solaris操作系统。对于链接,您应该使用通过getconf LFS_LDFLAGS
报告的链接标记。在Linux系统上,您不需要特殊的链接标志。- 定义
_LARGEFILE_SOURCE
和_LARGEFILE64_SOURCE
。使用这些定义,您可以直接使用像open64这样的LFS函数。- 使用
O_LARGEFILE
标记open
来操作大文件。
答案 1 :(得分:0)