我注意到,当我试图寻找比off_t所能表示的更多的字节时,我得到了一个EOVERFLOW错误。我如何在off_t中寻找更大的数字?
发布于 2012-07-02 07:56:23
启用large file support。
简而言之,要使用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系统上,您不需要特殊的链接flags._LARGEFILE_SOURCE和_LARGEFILE64_SOURCE。有了这些定义,您就可以使用LFS函数,如open64、directly.O_LARGEFILE标志和open对大文件进行操作。发布于 2012-07-02 08:03:22
请参阅http://www.kernel.org/doc/man-pages/online/pages/man3/lseek64.3.html
https://stackoverflow.com/questions/11286515
复制相似问题