知道了。我把thread safe和async signal safe搞混了
IEEE Std 1003.1 lists 118 reentrant UNIX(R) functions. The rest of the functions are non-reentrant because of any of the following:
They call malloc or free
They are known to use static data structures
They are part of the standard I/O library
感觉应该尽量不要依赖push_back()、emplace_back()的内部实现来保证reentrant,这些STL函数没有保证说一定不会去调用malloc/new。
【 在 fairfox 的大作中提到: 】
: malloc 不是 async signal safe的。不过可能仅限linux,其他系统不知道。
--
修改:z16166 FROM 221.222.173.*
FROM 221.222.173.*