1

私は必死に C(++) でカスタム エラー コードを定義しようとしています。

私が取り組んでいるプロジェクトに関しては、例外とシグナル、および動的メモリを割り当てる可能性のあるその他のアプローチを使用することは禁止されています。

それらに似たエラーを生成するいくつかのメソッドには標準エラーコードを使用しましたが、一部のメソッドでは、OS が提供する標準エラーコードによってカバーされる特定のエラーがあります。

システム内のエラー文字列も検索しましたが、エラー メッセージを見つけることができませんでした O_O とにかくそれらはどこで定義されていますか?

そのため、strerror を使用して出力されるカスタム エラー コード (たとえば 666) と対応するエラー メッセージ (「Satan がエラーを宣言しました!」) を定義できる方法を探しています。これは可能ですか、それともシステム関連のファイルをいじる必要がありますか?

よろしくお願いします。

4

2 に答える 2

2

列挙型を型として宣言すると、型安全性が伝播するドメインを満たすことができます。

次に、説明に char バッファーとしてアクセスする関数を提供できます (ロケールが与えられた場合、現在のロケールは?)。

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

static const char* Description(const t_type& pError) {
  switch(pError) {
...
}
于 2012-05-29T13:34:54.807 に答える
1

の一部の実装でstrerror(3)は、ユーザー定義のエラー コードとラベルを使用できます。

_user_strerror()の後に関数を提供し、エラー コードを定義する必要があります__ELASTERROR

于 2012-05-29T13:42:23.647 に答える