确实是问题,查了下,AC从20年前就做了个网站说largefile的问题
http://ac-archive.sourceforge.net/largefile/index.html
现在感觉linux/solaris这么做还不如像bsd那样直接不兼容改成64位的呢..
另外,第三方库如果头文件用了off_t还是32位的也有潜在的溢出问题吧?
就这个问题本身来说,或许可以全部使用off64_t以及lseek64,使用编译脚本辅助根
据编译环境自定义适当的off64_t和lseek64,这样可以明确告知使用者当前用的是64位
的offset,同时不会影响第三方库
比如用cmake的话可以通过CheckTypeSize和check_symbol_exists判断lseek是否存在以
及是否是64位off_t,然后define适当的off64_t和lseek64
【 在 laputa2013 的大作中提到: 】
: 这也容易出事,比如第三方库的头文件里用了off_t作为参数类型。
--
FROM 111.199.187.*