Google

libjconvŠÖ”ƒŠƒtƒ@ƒŒƒ“ƒX


int
jconv_alloc_apply_iconv (iconv_t cd,
                         const char *buffer,
                         size_t len,
                         char **buffer_r,
                         size_t *len_r,
                         size_t *error_pos_r);
ˆø”cd‚ÅŽ¦‚³‚ê‚éiconvƒnƒ“ƒhƒ‹‚ð—˜—p‚µ‚ăR[ƒhƒZƒbƒg•ÏŠ·‚ðŽÀs‚µ‚Ü‚·Bˆø”buffer‚ɂ͕ϊ·Œ³‚̃oƒbƒtƒ@(nul•¶Žš‚ðŠÜ‚ñ‚Å‚¢‚Ä‚à‚æ‚­Anul‚ŏI‚í‚Á‚Ä‚¢‚È‚­‚Ä‚à\‚í‚È‚¢)‚ðŽw’肵Aˆø”len‚ɂ͕ϊ·Œ³‚̃oƒbƒtƒ@‚̃oƒCƒg”‚ðŽw’肵‚Ü‚·BƒR[ƒhƒZƒbƒg•ÏŠ·‚ÌŒ‹‰Ê‚Ímalloc‚É‚æ‚èƒq[ƒv‚©‚çŠm•Û‚³‚ꂽƒƒ‚ƒŠ—̈æ‚ÉŽû”[‚³‚êAˆø”buffer_r‚ÌŽw‚·æ‚Ö‚»‚̃ƒ‚ƒŠ—̈æ‚̃AƒhƒŒƒX‚ª‘ã“ü‚³‚ê‚Ü‚·B‚»‚̃ƒ‚ƒŠ—̈æ‚̃oƒCƒg”(•ÏŠ·Œ‹‰Ê‚̃oƒCƒg”)‚͈ø”len_r‚ÌŽw‚·æ‚Ö‘ã“ü‚³‚ê‚Ü‚·B‚æ‚Á‚ĕϊ·Œ‹‰Ê‚́AƒAƒhƒŒƒX*buffer_r‚©‚ç‚Ì*len_rƒoƒCƒg‚ÉŠi”[‚³‚ê‚Ä‚¢‚Ü‚·B•ÏŠ·Œ‹‰Ê‚͏í‚ɏI’[‚Énul•¶Žš‚ª‚‚¯‚ç‚ê‚Ü‚·B‚à‚µ•ÏŠ·‚ªŽ¸”s‚µ‚½ê‡‚́A•ÏŠ·Œ³ƒoƒbƒtƒ@’†‚̃Gƒ‰[”­¶‰ÓŠ‚̃IƒtƒZƒbƒg‚ªerror_pos_r‚ÌŽw‚·æ‚Ö‘ã“ü‚³‚êAŠÖ”‚Í0‚łȂ¢’l‚ð•Ô‚µ‚Ü‚·B‚æ‚Á‚Äbuffer + *error_pos_r‚ªƒGƒ‰[”­¶‰ÓŠ‚ɂȂè‚Ü‚·B•ÏŠ·‚ª¬Œ÷‚µ‚½ê‡‚Í‚±‚̊֐”‚Í0‚ð•Ô‚µ‚Ü‚·BƒGƒ‰[‚ª”­¶‚µ‚½ê‡‚Å‚à“r’†‚܂ł̕ϊ·Œ‹‰Ê‚ª*buffer_r‚ɏ‘‚«ž‚Ü‚ê‚邽‚߁A‚±‚̊֐”‚ªƒGƒ‰[‚ɂȂÁ‚½‚©”Û‚©‚É‚©‚©‚í‚炸*buffer_r‚ªNULL‚łȂ¢ê‡‚̓†[ƒU‚ªfree‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB ‚à‚µ•ÏŠ·æ‚̃R[ƒhƒZƒbƒg‚ªƒXƒe[ƒgƒtƒ‹‚È‚à‚̂ł ‚Á‚½ê‡‚́A‚±‚̊֐”‚Å“¾‚ç‚ê‚é•ÏŠ·æ‚̃oƒbƒtƒ@‚É‚Í(•K—v‚È‚ç)ƒŠƒZƒbƒgƒV[ƒPƒ“ƒX‚ª‘‚«‚±‚Ü‚êAƒoƒbƒtƒ@‚Ì––‚ł͏í‚ɏ‰ŠúƒXƒe[ƒg‚ɂȂè‚Ü‚·B‚½‚Æ‚¦‚Εϊ·æ‚̃R[ƒhƒZƒbƒg‚ªISO-2022-JP‚̏ꍇA•ÏŠ·Œ³ƒoƒbƒtƒ@‚̍Ōã‚Ì•¶Žš‚ªJIS-X-0208•¶ŽšW‡‚Ì‚à‚̂ł ‚Á‚Ä‚àA•ÏŠ·æ‚̃oƒbƒtƒ@‚̍Ōã‚É‚ÍASCII‚É–ß‚·ƒV[ƒPƒ“ƒX‚ª‘‚«‚±‚Ü‚ê‚Ü‚·B‚±‚̊֐”‚ªŽ¸”s‚µ‚½ê‡AŠÖ”‚Í0‚łȂ¢’l‚ð•Ô‚µ‚Ü‚·B”­¶‚µ‚½ƒGƒ‰[‚ÌŽí—Þ‚Íerrno•ϐ”‚ł͂Ȃ­AŠÖ”‚̕Ԃè’l‚Å”»•Ê‚µ‚Ü‚·B‹N‚±‚肤‚éƒGƒ‰[‚ÍŽŸ‚̂Ƃ¨‚è‚Å‚·B
ENOMEM
ƒq[ƒv‚©‚烁ƒ‚ƒŠ‚ðŽæ“¾‚·‚é‚̂Ɏ¸”s‚µ‚½Bƒƒ‚ƒŠ‚ª•s‘«‚µ‚Ä‚¢‚éB
EILSEQ
•ÏŠ·Œ³ƒoƒbƒtƒ@‚Ì’†‚ɁA•ÏŠ·Œ³ƒR[ƒhƒZƒbƒg‚Æ‚µ‚Ä•s³‚ȃoƒCƒg—ñ‚ªŒ©‚‚©‚Á‚½‚©A•ÏŠ·æƒR[ƒhƒZƒbƒg‚Ö•ÏŠ·‚Å‚«‚È‚¢•¶Žš‚ªŒ©‚‚©‚Á‚½B‚±‚̂Ƃ«*error_pos_r‚ªAbuffer’†‚̃Gƒ‰[‚ª”­¶‚µ‚½ƒIƒtƒZƒbƒg‚ɂȂéB
EINVAL
•ÏŠ·Œ³ƒoƒbƒtƒ@‚̍Ōã‚É•sŠ®‘S‚ȃoƒCƒg—ñ‚ª•t‚¢‚Ä‚¢‚éB‚±‚ê‚Í‚½‚Æ‚¦‚΁A•ÏŠ·Œ³ƒoƒbƒtƒ@‚Ì––”ö‚ª2ƒoƒCƒg•¶Žš‚Ì1ƒoƒCƒg–ڂŏI‚í‚Á‚Ä‚¢‚邯‚«‚É‚¨‚±‚éB
E2BIG
iconv‚ª‘S‚­•ÏŠ·‚ðŽÀs‚µ‚È‚¢‚É‚à‚©‚©‚í‚炸³íI—¹‚µ‚½B‚à‚µlen‚ª0‚ł͂Ȃ¢‚É‚à‚©‚©‚í‚炸‚±‚̃Gƒ‰[‚ª”­¶‚µ‚½‚È‚çAiconv‚ÌŽÀ‘•‚É–â‘肪‚ ‚éB

int
jconv_alloc_conv (const char *src,
                  size_t src_len,
                  char **dest_r,
                  size_t *dest_len_r,
                  const char *const *src_codesets,
                  int num_src_codesets,
                  int *actual_codeset_r,
                  const char *dest_codeset);
src‚Æsrc_len‚ÅŽ¦‚³‚ê‚éƒoƒbƒtƒ@‚̃R[ƒhƒZƒbƒg‚ð•ÏŠ·‚µAŒ‹‰Ê‚ð*dest_r‚Æ*dest_len_r‚ÉŠi”[‚µ‚Ü‚·B*dest_r‚̓q[ƒv‚©‚çŠm•Û‚³‚ê‚Ü‚·Bsrc_codesets‚Ænum_src_codesets‚ŕϊ·Œ³ƒR[ƒhƒZƒbƒg‚ÌŒó•â‚ðŽw’肵Adest_codeset‚ɂ͕ϊ·æƒR[ƒhƒZƒbƒg‚ðŽw’肵‚Ü‚·Bsrc‚Æsrc_len‚ÅŽ¦‚³‚ê‚éƒoƒbƒtƒ@‚ªsrc_codesets‚Ì’†‚Ì‚¢‚¸‚ê‚©‚̃R[ƒhƒZƒbƒg‚Æ‚µ‚Đ³‚µ‚¢‚à‚̂ł ‚ê‚΂±‚̊֐”‚Í0‚ð•Ô‚µA*actual_codeset_r‚É‚Ísrc_codesets’†“K‡‚µ‚½ƒR[ƒhƒZƒbƒg‚̔ԍ†‚ªƒZƒbƒg‚³‚ê‚Ü‚·B‚¢‚¸‚ê‚̃R[ƒhƒZƒbƒg‚É‚à“K‡‚µ‚È‚©‚Á‚½ê‡‚Í0ˆÈŠO‚Ì’l‚ð•Ô‚µ‚Ü‚·B‹N‚±‚肤‚éƒGƒ‰[‚ÍŽŸ‚̂Ƃ¨‚è‚Å‚·B
ENOMEM
ƒƒ‚ƒŠ‚ª•s‘«‚µ‚Ä‚¢‚éB
EMFILE
ƒvƒƒZƒX‚ªŠJ‚¯‚éƒtƒ@ƒCƒ‹”‚̐§ŒÀ‚É’B‚µ‚½‚½‚ßiconvƒnƒ“ƒhƒ‹‚ªŽæ“¾‚Å‚«‚È‚¢B
ENFILE
ƒVƒXƒeƒ€‚ªŠJ‚¯‚éƒtƒ@ƒCƒ‹”‚̐§ŒÀ‚É’B‚µ‚½‚½‚ßiconvƒnƒ“ƒhƒ‹‚ªŽæ“¾‚Å‚«‚È‚¢BB
EINVAL
OS‚ªƒTƒ|[ƒg‚µ‚Ä‚¢‚È‚¢ƒR[ƒhƒZƒbƒg‚ðŽw’肵‚½B
‚»‚̂ق©‚É‚àjconv_alloc_apply_iconv‚ª•Ô‚·ƒGƒ‰[‚ð‚»‚Ì‚Ü‚Ü•Ô‚·‚±‚Æ‚ª‚ ‚è‚Ü‚·BEINVAL‚́AOS‚ªƒTƒ|[ƒg‚µ‚Ä‚¢‚È‚¢ƒR[ƒhƒZƒbƒg‚ðŽw’肵‚½‚Ì‚ªŒ´ˆö‚Å‹N‚±‚邱‚Æ‚à‚ ‚ê‚΁Ajconv_alloc_apply_iconv‚ªEINVAL‚ð•Ô‚µ‚½(––”ö‚É•sŠ®‘S‚ȃoƒCƒg—ñ‚ª‚ ‚Á‚½)‚±‚Ƃɂæ‚éê‡‚à‚ ‚è‚Ü‚·B‚à‚µ*dest_r‚ªNULL‚È‚ç‚ΑOŽÒ‚ªŒ´ˆö‚ŁANULL‚łȂ¢‚È‚ç‚ÎŒãŽÒ‚ªŒ´ˆö‚Å‚·B
int
jconv_alloc_conv_autodetect (const char *src,
                             size_t src_len,
                             char **dest_r,
                             size_t *dest_len_r,
                             const char *const *src_codesets,
                             int num_src_codesets,
                             int *actual_codeset_r,
                             const char *dest_codeset);
‚±‚̊֐”‚͂قƂñ‚Çjconv_alloc_conv‚Æ“¯‚¶“®ì‚ð‚µ‚Ü‚·‚ªAdest_codeset‚ÉNULL‚ð‹–‚·‚̂ƁAnum_src_codesets‚É0‚ð‹–‚·“_‚¾‚¯‚ªˆÙ‚È‚è‚Ü‚·Bdest_codeset‚ªNULL‚̏ꍇ‚́Ajconv_info_get_current_codesetŠÖ”‚̕Ԃ·’l‚ðŽw’肵‚½‚̂Ɠ¯‚¶‚±‚ƂɂȂè‚Ü‚·Bnum_src_codesets‚ª0‚̏ꍇ‚́Asrc_codesets‚Ænum_src_codesets‚Éjconv_info_get_pref_codesetsŠÖ”‚Å“¾‚ç‚ê‚éƒR[ƒhƒZƒbƒg‚ÌƒŠƒXƒg‚ðŽw’肵‚½‚̂Ɠ¯‚¶‚±‚ƂɂȂè‚Ü‚·B
char *
jconv_strdup_conv_autodetect (const char *src,
                              const char *dest_codeset,
                              const char *src_codeset,
                              ...);
‚±‚̊֐”‚Íjconv_alloc_conv_autodetect‚Ƃقړ¯“™‚Ì‹@”\‚ðŽ‚¿‚Ü‚·‚ªAˆµ‚¤ƒoƒbƒtƒ@‚ªí‚É•¶Žš—ñ(nul‚ŏI—¹‚·‚邿‚¤‚ȃoƒCƒg—ñ‚ւ̃|ƒCƒ“ƒ^)‚Å‚ ‚é“_‚ªˆÙ‚È‚è‚Ü‚·B‚±‚̊֐”‚̓R[ƒhƒZƒbƒg•ÏŠ·‚ª¬Œ÷‚·‚邯ƒq[ƒv‚©‚çŠm•Û‚³‚ꂽ•¶Žš—ñ‚ð•Ô‚µAƒR[ƒhƒZƒbƒg•ÏŠ·‚ÉŽ¸”s‚·‚邯strdup(src)‚ð•Ô‚µ‚Ü‚·Bƒq[ƒvƒƒ‚ƒŠ‚ª•s‘«‚µ‚½ê‡‚ÍNULL‚ð•Ô‚µ‚Ü‚·B•ÏŠ·Œ³ƒR[ƒhƒZƒbƒg‚͉•ϒ·ˆø”‚ðŽg‚Á‚ÄŽw’肵‚Ü‚·B‚±‚̊֐”‚ւ̍Ōã‚̈ø”‚Í•K‚¸NULL‚łȂ­‚Ă͂Ȃè‚Ü‚¹‚ñB‚±‚̊֐”‚ÍnulI’[•¶Žš—ñ‚ð‘ΏۂƂµ‚Ä‚¢‚邽‚߁Anul•¶Žš‚ðŠÜ‚Þ‚±‚Æ‚ª‚ ‚éƒR[ƒhƒZƒbƒg(UCS2‚ȂǁBŒµ–§‚É‚ÍUTF8‚ànul•¶Žš‚ðŠÜ‚Þ‚±‚Æ‚ª‚ ‚é)‚͕ϊ·Œ³‚â•ÏŠ·æ‚̃R[ƒhƒZƒbƒg‚Æ‚µ‚Ä—˜—p‚Å‚«‚Ü‚¹‚ñB‚Ü‚½ƒGƒ‰[‚ª”­¶‚µ‚Ä‚àŒ´ˆö‚ð’m‚é•û–@‚ª‚ ‚è‚Ü‚¹‚ñB
char *
jconv_strdup_conv_fullauto (const char *src);
‚±‚̊֐”‚Íjconv_strdup_conv_autodetect(src, NULL, NULL)‚Æ“¯“™‚Å‚·B
char *
convert_kanji_auto (const char *src);
‚±‚̊֐”‚Íjconv_strdup_conv_fullauto(src)‚Æ“¯“™‚Å‚·BŒÃ‚¢ƒo[ƒWƒ‡ƒ“‚Ƃ̌݊·«‚Ì‚½‚߂Ɏc‚µ‚Ä‚ ‚è‚Ü‚·B
char *
convert_kanji (const char *src, const char *dest_codeset);
‚±‚̊֐”‚Íjconv_strdup_conv_autodetect(src, dest_codeset, NULL)‚Æ“¯“™‚Å‚·BŒÃ‚¢ƒo[ƒWƒ‡ƒ“‚Ƃ̌݊·«‚Ì‚½‚߂Ɏc‚µ‚Ä‚ ‚è‚Ü‚·B
char *
convert_kanji_strict (const char *src,
                      const char *dest_codeset,
                      const char *src_codeset);
‚±‚̊֐”‚Íjconv_strdup_conv_autodetect(src, dest_codeset, src_codeset, NULL)‚Æ“¯“™‚Å‚·BŒÃ‚¢ƒo[ƒWƒ‡ƒ“‚Ƃ̌݊·«‚Ì‚½‚߂Ɏc‚µ‚Ä‚ ‚è‚Ü‚·B
void
jconv_info_init (const char *conffile);
‚±‚̊֐”‚Íjconv_info_get_current_codeset‚âjconv_info_get_pref_codesets‚ª•Ô‚·ƒe[ƒuƒ‹‚ð‰Šú‰»‚µ‚Ü‚·Bƒe[ƒuƒ‹‚̃f[ƒ^‚Íconffile‚ÅŽ¦‚³‚ê‚éƒtƒ@ƒCƒ‹‚©‚ç“ǂݎæ‚ç‚êAŒ»Ý‚̃ƒJ[ƒ‹(setlocale‚Őݒ肳‚ꂽƒƒJ[ƒ‹)‚É‚µ‚½‚ª‚Á‚Äjconv_info_get_current_codeset‚âjconv_info_get_pref_codesets‚̕Ԃ·‚ׂ«’l‚ªƒZƒbƒg‚³‚ê‚Ü‚·B‚æ‚Á‚Ä‚±‚̊֐”‚Ísetlocale‚эƒJ[ƒ‹‚ðÝ’肵‚½Œã‚ɌĂяo‚·‚ׂ«‚Å‚·Bconffile‚ªNULL‚̏ꍇ‚Í/etc/libjconv/default.conf‚ªŽw’肳‚ꂽ‚̂Ɠ¯‚¶‚±‚ƂɂȂè‚Ü‚·B‚±‚̊֐”‚̓}ƒ‹ƒ`ƒXƒŒƒbƒhƒZ[ƒt‚ł͂ ‚è‚Ü‚¹‚ñBlibjconv‚̃R[ƒhƒZƒbƒg•ÏŠ·ŠÖ”(jconv_alloc_conv_autodetect‚È‚Ç)‚́A‚à‚µjconv_info_init‚ª‚Ü‚¾ŽÀs‚³‚ê‚Ä‚¢‚È‚¢‚È‚çAjconv_info_init(NULL)‚ð“à•”‚ňÖق̂¤‚¿‚ɌĂяo‚µ‚ăe[ƒuƒ‹‚ð‰Šú‰»‚µ‚Ü‚·B‚à‚µ‚ ‚ç‚©‚¶‚ßjconv_info_init‚𖾎¦“I‚ɌĂñ‚Å‚¢‚ê‚΁Ajconv_alloc_conv_autodetect‚Ȃǂ̃R[ƒhƒZƒbƒg•ÏŠ·ŠÖ”‚Í‘S‚ă}ƒ‹ƒ`ƒXƒŒƒbƒhƒZ[ƒt‚ɂȂè‚Ü‚·B‚È‚¨jconv_alloc_apply_iconv‚Æjconv_alloc_conv‚Íjconv_info_get_current_codeset‚âjconv_info_get_pref_codsets‚ð—˜—p‚µ‚È‚¢‚½‚ߏí‚Ƀ}ƒ‹ƒ`ƒXƒŒƒbƒhƒZ[ƒt‚Å‚·B
const char *
jconv_info_get_current_codeset (void);
Œ»Ý‚̃ƒJ[ƒ‹‚̃}ƒ‹ƒ`ƒoƒCƒg•¶Žš—ñ‚̃R[ƒhƒZƒbƒg‚Ì–¼‘O‚ð•Ô‚µ‚Ü‚·B
const char *const *
jconv_info_get_pref_codesets (int *num_codesets_r);
Œ»Ý‚̃ƒJ[ƒ‹‚ÆŠÖŒW‚̐[‚¢ƒR[ƒhƒZƒbƒg‚ÌƒŠƒXƒg‚ð•Ô‚µ‚Ü‚·B•Ô‚³‚ê‚éƒR[ƒhƒZƒbƒg‚̌”‚ª*num_codesets_r‚ɃZƒbƒg‚³‚ê‚Ü‚·B
Akira Higuchi