|
|
|
| 2008/08/28 09:11||▲
|
|
|
今回から<string.h>で宣言される関数についてお話していきます。まずは、後回しにしていると忘れてしまいそうな、strerror関数からです。strerror関数の使用頻度は必ずしも高くないので、これまで使ったことがない方もおられると思います。そこで、簡単にこの関数について解説しておきます。
strerror関数は、errno に設定するエラー番号を引数として渡すことで、そのエラー番号に応じた文字列を返す関数です。例えば、EDOMを渡せば、"Domain error"という文字列を返すわけです。具体的にどんな文字列を返すかは、処理系に依存します。
それでは実際の実装に入ります。
#include <errno.h>
char *strerror(int errnum) { char *result; switch (errnum) { case 0: result = "No error"; break; case EDOM: result = "Domain error"; break; case ERANGE: result = "Range error"; break; case EILSEQ: result = "Illegal sequence"; break; default: result = "Unknown error"; break; } return result; }
今回の実装では、エラー番号は三種類しかないのでswitch文にしましたが、エラー番号が多い場合は表引きの方がよさそうです。また、文字列定数を(const修飾がない)char*で返しているところも、いまひとつ安全性に欠けますが、これは標準Cの仕様なので致し方ありません。
|
| 2006/02/15 23:01|文字列操作|TB:0|CM:0|▲
|
|
|
コメント
|
|
コメントの投稿
|
|
|
|
|
トラックバック
|
トラックバックURLはこちら
http://libc.blog47.fc2.com/tb.php/29-a62c8b86
|
|
|
|
|
ホーム
全記事一覧
<< 前の記事
次の記事 >>
|