我希望我的 C 程序即使在非常旧的 Unix 操作系统上也可以移植,但问题是我正在使用 pthreads 和动态分配(malloc)。我所知道的所有 Unix 都有一个线程安全的 malloc(Linux、*BSD、Irix、Solaris),但是 C 标准不能保证这一点,而且我敢肯定有一些非常旧的版本不是这样的。
那么,是否有一些我需要用互斥锁包装 malloc() 调用的平台列表?我计划编写一个 ./configure 测试来检查当前平台是否在该列表中。
另一种选择是测试 malloc() 的线程安全性,但我知道没有确定性的方法来做到这一点。对此也有任何想法吗?