我想將我從Mac OS X寫入Linux的一些代碼移植到Linux上,並且正努力找到合適的OSX替代品OSAtomic.h
。我發現gcc __sync*
系列,但我不確定它會與我有的舊編譯器/內核兼容。我需要在GCC v4.1.2和2.6.18內核上運行代碼。Linux上的C原子操作
我需要具體操作是:
- 增量
- 遞減
- 比較和交換
是什麼奇怪的是,在Linux機器上運行locate stdatomic.h
找到頭文件(在C++目錄中),而在我的OSX機器上運行相同的命令(gcc v4.6.3)則什麼也不返回。我需要安裝什麼來獲取stdatomic庫,並且它可以與gcc v 4.1.2一起使用?
作爲一個方面說明,我不能使用任何第三方庫。
GCC原子構建文檔記錄爲[4.1.1]的一部分(http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Atomic-Builtins.html)。 – jxh
類似的增量和獲取和沒有GCC版本要求:http://stackoverflow.com/questions/2353371/atomic-increment-fetch –