看起来有点愚蠢的问题,但让我思考了一下...
根据这里的说明,在符合标准的系统上,time
需要是线程安全的,对于函数的参数没有要求。如果提供了一个NULL
参数,则列出了一些不需要是线程安全的函数,但time
并未包括在内。
因此,任何足够符合POSIX
标准的系统都应该具有线程安全的time
实现。
然而,一个POSIX
系统是否可以选择以使其成为指针的方式来实现time_t
,并仍然保持符合标准?因此,如果提供了一个NULL参数来存储结果,那么它的线程安全性可能会被打破,因为它很可能会返回指向某些静态存储的指针。或者我在这个方面漏掉了一些关于time_t
的要求或约定吗?
如何最好地验证在几个UNIX
平台上的time
是否是线程安全的?特别是AIX
、HP-UX
、Linux
和Solaris
。通过调试器逐步执行汇编代码可能有效,但实现可能会改变。