我正在學習C++ 11標準。我想了解error_code和errno是否相互關聯?如果是,那麼如何? 如果沒有,那麼我應該在哪些條件下設置errno並在哪些條件下設置error_code?error_code vs errno
我做了一個小測試程序來理解這一點,但仍然有點困惑。請幫忙。這些功能是C庫或OS功能從未拋出異常 -
#include <iostream>
#include <system_error>
#include <thread>
#include <cstring>
#include <cerrno>
#include <cstdio>
using namespace std;
int main()
{
try
{
thread().detach();
} catch (const system_error & e) {
cout<<"Error code value - "<<e.code().value()<<" ; Meaning - "<<e.what()<<endl;
cout<<"Error no. - "<<errno<<" ; Meaning - "<<strerror(errno)<<endl;
}
}
Output -
Error code value - 22 ; Meaning - Invalid argument
Error no. - 0 ; Meaning - Success
您的標題引用了所謂的'error_code',但您的代碼沒有提及它。 – 2013-04-05 06:14:28
@Keith:e.code()函數返回error_code的對象,它的值正在用值函數讀取。 – tshah06 2013-04-05 06:20:07