这是代码
mutex mtx;
try{
mtx.lock();
mtx.lock();
}catch(system_error& e){
mtx.unlock();
cout << e.what() << '\n';
cout << e.code() << '\n';
}
device or resource busy, generic: 16
预期有输出,但从未见过。
gcc 版本 4.8.4
ps
上面的代码来自 Bjarne Stroustrup 的书——C++ 编程语言,42.3.1.2 mutex Error。根据这本书,应该出现一个system_error。这个关于“未定义行为”的问题是在 2012 年发布的,甚至在这本书出版之前。