我用C++编写了一个使用timer_settimeUbuntu下的函数的程序,然后让我的朋友尝试在Mac OS X下编译它.手册页timer_settime说这个函数符合POSIX.1-2001,但是在OS X下(声称符合POSIX)g ++给出了编译错误.Web搜索显示OS X API中不存在此功能.
这是否意味着OS X不完全符合POSIX,或者我误解了POSIX兼容性意味着什么?
编辑:我查看了POSIX草案,并在第2063页的系统界面的字母顺序列表中找到了这个函数,就像标准的C函数旁边一样printf,因此在我看来这不是timer_settime标准的某种扩展.
事实证明,timer_settime像Ken Thomases所建议的那样,高级计时器功能确实是POSIX实时扩展的一部分.引用此功能的文档的更改历史记录:
问题6
timer_getoverrun(),timer_gettime()和timer_settime()函数被标记为Timers选项的一部分.
问题7
timer_getoverrun(),timer_gettime()和timer_settime()函数从Timers选项移动到Base.
最新的POSIX标准POSIX.1-2008第7期最近于2013年发布.我朋友的计算机运行的OS X 10.9也于2013年底发布,因此我认为它不符合最新标准.然而,维基百科说,2014年底发布的最新OS X v10.10"Yosemite"完全符合POSIX标准.
但是,毕竟,当某些函数被标准静默标记为"扩展"并且手册页没有提到这个重要事实时,我仍然不明白如何编写可移植代码.
| 归档时间: |
|
| 查看次数: |
1131 次 |
| 最近记录: |