作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图维护在许多不同系统上编译的代码。我见过十几种不同的索取方式 lseek
这需要 64 位。一些系统使用 lseek64
,有些使用 lseeko
,有些要求您定义 _FILE_OFFSET_BITS=64
,现在我刚刚发现了一个新的,需要你定义 __USE_FILE_OFFSET64
.
这一切有什么标准吗?
最佳答案
有getconf values in IEEE Std 1003.1-2004 (以及 IEEE Std 1003.1-2008 中的更新集;另请参见这些文档中的示例部分)。没有指定实际的编译器选项(甚至可能没有定义)。
然而,AC_SYS_LARGEFILE
autoconf 中的宏不会尝试使用它——它只是尝试 -n32
对于 IRIX,-D_FILE_OFFSET_BITS=64
(这应该适用于大多数系统)和 -D_LARGE_FILES=1
(显然适用于 AIX)。还有一个引用Adding Support for Arbitrary File Sizes to the Single UNIX Specification (旧的规范草案,然后部分包含在 POSIX.1 规范中)在 autoconf 源中。
至于定义__USE_FILE_OFFSET64
手动,不确定这是否真的是一个正确的解决方案——双下划线宏是为系统头文件保留的,很可能有一些条件定义依赖于其他定义。
关于64-bit - __USE_FILE_OFFSET64 与 _FILE_OFFSET_BITS=64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4357570/
我是一名优秀的程序员,十分优秀!