2014-08-27 33 views
1

我使用boost::system::error_code將錯誤代碼捕獲到日誌文件,並且它記錄了一個unknown error。我沒有在Web中找到任何有關此錯誤的參考。boost :: system :: error_code生成錯誤158未知

bool read_response_payload(size_t payload_len) 
{ 
    boost::system::error_code ec; 
    stream_connector<protocol_type, INTERFACE_BUFFER_LEN, 
      INTERFACE_TIMEOUT_SECS>::read_all(payload_len, ec); 
    if (ec) { 
      LOGGER_LOG_WARN("Interface read error: %s", ec.message().c_str()); 
      stream_connector<protocol_type, INTERFACE_BUFFER_LEN, 
       INTERFACE_TIMEOUT_SECS>::disconnect(); 
      return false; 
    } 
    else { 
      return true; 
    } 
} 

在日誌文件中我得到的消息是這樣的:

Interface read error: Unknown error 158 

該系統是:

[email protected]:~# uname -a 
Linux OpenWrt 2.6.30.9 #4 Thu Jul 3 16:08:13 BRT 2014 rlx GNU/Linux 
+1

我想這是一個OpenWrt特定的錯誤。嘗試在OpenWrt文檔或頭文件中找到它。 – 2014-08-27 17:56:10

回答

1

正如評論所說是從的OpenWRT

<asm/errno.h>描述的錯誤
#define ECONNREFUSED 146 /* Connection refused */ 
#define EHOSTDOWN 147 /* Host is down */ 
#define EHOSTUNREACH 148 /* No route to host */ 
#define EWOULDBLOCK EAGAIN /* Operation would block */ 
#define EALREADY 149 /* Operation already in progress */ 
#define EINPROGRESS 150 /* Operation now in progress */ 
#define ESTALE  151 /* Stale NFS file handle */ 
#define ECANCELED 158 /* AIO operation canceled */ 

這是一個已取消的異步IO操作。

+1

似乎openwrt使用的errno編號與「普通」編號不同。爲Asio提交補丁將會很好... – 2014-08-28 07:10:11

相關問題