regerror() - エラー・メッセージの戻し

標準

標準/拡張機能 C/C++ 依存項目

XPG4
XPG4.2
Single UNIX Specification、バージョン 3

両方  

形式

#include <regex.h>

size_t regerror(int errcode, const regex_t *_restrict_preg,
                char *_restrict_errbuf, size_t errbuf_size);

機能説明

errcode についての記述を検索します(正規表現については、正規表現を参照してください)。

戻り値

regerror() は、errcode と対応しているエラー状態についての生成された記述ストリングを保持するのに必要な、バッファーのサイズを表す整数値を戻します。

regerror() は、次のメッセージを戻します。
エラー・コード
ストリングの説明
REG_BADBR
¥{ ¥} 範囲式が無効です
REG_BADPAT
正規表現が無効です
REG_BADRPT
?*+ の前に有効 RE がありません
REG_EBOL
¬ 固定で BOL ではありません
REG_EBRACE
¥{ ¥} または { } が対になっていません
REG_EBRACK
[] が対になっていません
REG_ECHAR
マルチバイト文字は無効です
REG_ECOLLATE
照合エレメントが無効です
REG_ECTYPE
文字クラスが無効です
REG_EEOL
$ 固定で EOL ではありません
REG_EESCAPE
最後の文字が ¥ です
REG_EPAREN
¥( ¥) または () が対になっていません
REG_ERANGE
範囲式の終点が無効です
REG_ESPACE
メモリー不足です
REG_ESUBREG
¥ 数字の数値が無効です
REG_NOMATCH
RE パターンが見つかりません

メッセージ中の LC_SYNTAX 文字は、現行の LC_SYNTAX カテゴリーからの コード・ポイントに変換されることになります。

CELEBR08
⁄* CELEBR08                                      

   This example compiles an invalid regular expression, and                     
   print error message &regerror..                                              

 *⁄                                                                             
#include <regex.h>                                                              
#include <locale.h>                                                             
#include <stdio.h>                                                              
#include <stdlib.h>                                                             
                                                                                
main() {                                                                        
    regex_t    preg;                                                            
    char       *pattern = "a[missing.bracket";                                  
    int        rc;                                                              
    char       buffer[100];                                                     
                                                                                
    if ((rc = regcomp(&preg, pattern, REG_EXTENDED)) != 0) {                    
       regerror(rc, &preg, buffer, 100);                                        
       printf("regcomp() failed with '%s'¥n", buffer);
       exit(1);                                                                 
    }                                                                           
}                                                                               

関連情報