bwD*_*aco 4 c++ posix vector signal-handling async-safe
我的程序需要对vector<string>信号处理程序中的a 的内容执行只读访问SIGINT.(另一种方法是使用固定大小的固定长度C字符串数组.)该程序设计为在POSIX环境中运行.
是vector::operator[]和vector::size()异步安全(或信号安全)?
不,这不安全.C++ 11 1.9/6:
当抽象机器的处理因接收到信号而中断时,对象的值都不是
- 类型
volatile std::sig_atomic_t也不- 无锁原子对象(29.4)
在执行信号处理程序期间未指定,并且处理程序修改的不属于这两个类别之一的任何对象的值变为未定义.