2012-05-29 40 views
1

我拼命在C中定義自定義錯誤代碼(++)。如何在C定義自定義錯誤代碼(++)

至於我的工作就可以了項目的禁止使用異常和信號,並可能動態分配內存空間的任何其他方法。

我使用的標準錯誤碼爲哪些產生錯誤類似於那些一些方法,但由於某種方法誤差是特定於由標準的錯誤代碼的OS正在提供覆蓋。

我也搜索了在我的系統錯誤字符串,但不能設法找到錯誤消息O_O那些人在那裏呢界定?

因此,我正在尋找任何允許我定義自定義錯誤代碼(例如666)和使用strerror輸出的對應錯誤消息(「撒旦宣佈錯誤!」)的方法。 這是可能的還是我必須干涉一些系統相關的文件?

在問候, ahnimuhs

+1

做這些錯誤代碼需要「標準」 errno錯誤代碼?如果不是,那麼爲什麼不定義並返回自己的錯誤代碼呢? – Brady

+1

沒有動態內存限制不排除異常。在這個時代,在我看來,不使用例外是沒有意義的。 –

回答

1

strerror(3)的一些實現允許用戶定義的錯誤代碼和標籤。

您必須提供_user_strerror()函數並在__ELASTERROR之後定義錯誤代碼。

+0

這很有趣,我試圖找到一些這方面的資源,但除了你已經寫過的鏈接之外找不到任何信息。 – Ahnihmuhs

2

如果聲明枚舉作爲一種類型,能夠滿足,其中類型安全傳播的域。

然後,你可以提供一個函數來訪問描述爲一個字符緩衝區(給定的語言環境?當前區域?)。

class t_mon_io_error { 
public: 
enum t_type { 
... 
    SatanDeclaredAnError = 666 
... 
}; 

static const char* Description(const t_type& pError) { 
    switch(pError) { 
... 
}