catopen

Autres langues

Langue: ja

Version: 2001-12-14 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

̾Á°

catopen, catclose - ¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Î¥ª¡¼¥×¥ó/¥¯¥í¡¼¥º

½ñ¼°

#include <nl_types.h>

nl_catd catopen(const char *name, int flag);
int catclose(nl_catd catalog);

ÀâÌÀ

´Ø¿ô catopen() ¤Ï¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤ò¥ª¡¼¥×¥ó¤·¡¢¥«¥¿¥í¥°¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ ¤³¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï catclose() ¤Þ¤¿¤Ï execve(2) ¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤Þ¤ÇÍ­¸ú¤Ç¤¢¤ë¡£ ¥«¥¿¥í¥°¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¼ÂÁõ¤¹¤ë¤¿¤á¤Ë ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»ÈÍѤ¹¤ë¤È¡¢ FD_CLOEXEC ¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¡£

°ú¤­¿ô name ¤Ï¥ª¡¼¥×¥ó¤¹¤ë¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ name ¤¬ÀäÂХѥ¹¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç (¤¹¤Ê¤ï¤Á '/'¤ò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç)¡¢ name ¤Ï¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Ø¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£ ¤½¤ì°Ê³°¤Î¾ì¹ç¡¢´Ä¶­ÊÑ¿ô NLSPATH ¤¬ name ¤È¤È¤â¤Ë»ÈÍѤµ¤ì %N ¤òÃÖ¤­´¹¤¨¤ë (locale(7) »²¾È)¡£ ¥×¥í¥»¥¹¤¬ root ¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤ë¤È¤­¤Ë NLSPATH ¤¬»È¤ï¤ì¤ë¤«¤É¤¦¤«¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£ NLSPATH ´Ä¶­ÊÑ¿ô¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢ NLSPATH ¤Ç»ØÄꤵ¤ì¤¿¥Ñ¥¹¤ÎÃæ¤Î ¤É¤Î¥Ñ¥¹¤Ë¤ª¤¤¤Æ¤â¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤ò¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ ¼ÂÁõ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Ñ¥¹¤¬»È¤ï¤ì¤ë¡£ ¸å¼Ô¤Î¥Ç¥Õ¥©¥ë¥È¥Ñ¥¹¤Ï¡¢ flag °ú¤­¿ô¤¬ NL_CAT_LOCALE ¤Î¾ì¹ç¤Ë¤Ï LC_MESSAGES ¤Î¥í¥±¡¼¥ëÀßÄê¤Ë°Í¸¤·¡¢ flag °ú¤­¿ô¤¬ 0 ¤Î¾ì¹ç¤Ë¤Ï LANG ´Ä¶­ÊÑ¿ô¤Ë°Í¸¤¹¤ë¡£ ¥í¥±¡¼¥ë¤Î LC_MESSAGES ¤òÊѹ¹¤¹¤ë¤È¡¢ ¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥«¥¿¥í¥°¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Ìµ¸ú¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£

catopen() ¤Î flag °ú¤­¿ô¤Ï¡¢»ÈÍѤµ¤ì¤ë¸À¸ì¤Î¥½¡¼¥¹¤ò¼¨¤¹¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ NL_CAT_LOCALE ¤ËÀßÄꤵ¤ì¤ë¤È¡¢ LC_MESSAGES ¤Î¸½ºß¤Î¥í¥±¡¼¥ëÀßÄ꤬»È¤ï¤ì¤ë¡£ ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï LANG ´Ä¶­ÊÑ¿ô¤¬»È¤ï¤ì¤ë¡£

´Ø¿ô catclose() ¤Ï catalog ¤Ç»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤ò¥¯¥í¡¼¥º¤¹¤ë¡£ ¤³¤ì¤Ï¡¢°Ê¹ß¤Î catalog ¤Ç»ØÄꤵ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¤Ø¤ÎÁ´¤Æ¤Î»²¾È¤ò̵¸ú¤Ë¤¹¤ë¡£

ÊÖ¤êÃÍ

´Ø¿ô catopen() ¤¬À®¸ù¤¹¤ë¤È¡¢ nl_catd ·¿¤Î¥á¥Ã¥»¡¼¥¸¥«¥¿¥í¥°¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£ ¼ºÇÔ¤·¤¿¾ì¹ç¤Ï (nl_catdv) -1 ¤òÊÖ¤·¡¢ errno ¤òÀßÄꤷ¤Æ¥¨¥é¡¼¤ò¼¨¤¹¡£ ¤³¤³¤Çµ¯¤³¤êÆÀ¤ë¥¨¥é¡¼¤ÎÃͤˤϡ¢ open(2) ¤Î¸Æ¤Ó½Ð¤·¤ÎºÝ¤Ëµ¯¤³¤êÆÀ¤ëÁ´¤Æ¤Î¥¨¥é¡¼¤ÎÃͤ¬´Þ¤Þ¤ì¤ë¡£

´Ø¿ô catclose() ¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç 0 ¤ò¡¢¼ºÇÔ¤·¤¿¾ì¹ç -1 ¤òÊÖ¤¹¡£

´Ä¶­ÊÑ¿ô

LC_MESSAGES
LC_MESSAGES ¥í¥±¡¼¥ëÀßÄê¤Î¥½¡¼¥¹¤Ë¤Ê¤ë¤³¤È¤â²Äǽ¤Ê¤Î¤Ç¡¢ flag ¤¬ NL_CAT_LOCALE ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢»ÈÍѤ¹¤ë¸À¸ì¤ò·èÄꤹ¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£
LANG
flag ¤¬ 0 ¤Î¾ì¹ç¡¢»ÈÍѤ¹¤ë¸À¸ì¤ò·èÄꤹ¤ë¡£

½àµò

POSIX.1-2001. Äê¿ô MCLoadBySet ¤È MCLoadAll ¤ËÂбþ¤¹¤ë¥½¡¼¥¹¤¬ ²¿¤Ç¤¢¤ë¤Î¤«¤¬¤Ï¤Ã¤­¤ê¤·¤Æ¤¤¤Ê¤¤¡£

Ãí°Õ

°Ê¾å¤Ï POSIX.1-2001 ¤Ë¤ª¤±¤ëÀâÌÀ¤Ç¤¢¤ë¡£ glibc ¤Ç¤Ï NL_CAT_LOCALE ¤ÎÃÍ¤Ï 1 ¤Ç¤¢¤ë (°Ê²¼¤Î MCLoadAll ¤ÈÈæ³Ó¤»¤è)¡£ ¥Ç¥Õ¥©¥ë¥È¤Î¥Ñ¥¹¤Ï¾ì¹ç¤Ë¤è¤Ã¤ÆÍÍ¡¹¤Ç¤¢¤ë¤¬¡¢Ä̾ï¤Ï /usr/share/locale °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬Ä´¤Ù¤é¤ì¤ë¡£

Linux ¤Ë¤ª¤±¤ëÃí°Õ

¤³¤ì¤é¤Î´Ø¿ô¤Ï libc.so.4.4.4c °Ê¹ß¤Ç»ÈÍѲÄǽ¤Ç¤¢¤ë¡£ linux ¤Î libc4 ¤È libc5 ¤Ë¤ª¤¤¤Æ¤Ï¡¢¥«¥¿¥í¥°¥Ç¥£¥¹¥¯¥ê¥×¥¿ nl_catd ¤Ï mmap(2) ¤µ¤ì¤¿¥á¥â¥ê¤ÎÎΰè¤Ç¤¢¤Ã¤Æ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£ catopen() ¤Î flag ¤Ï¡¢ MCLoadBySet (=0) ¤« MCLoadAll (=1) ¤Î¤É¤Á¤é¤«¤Ç¤¢¤ë¡£ Á°¼Ô¤Î¾ì¹ç¡¢¥«¥¿¥í¥°¤Î¥»¥Ã¥È¤ÏɬÍ×»þ¤Ë¥í¡¼¥É¤µ¤ì¤ë¡£ ¸å¼Ô¤Î¾ì¹ç¡¢ºÇ½é¤Î catopen() ¤Î¸Æ¤Ó½Ð¤·¤Î¤È¤­¤ËÁ´¤Æ¤Î¥«¥¿¥í¥°¤¬¥á¥â¥êÆâ¤Ë¥í¡¼¥É¤µ¤ì¤ë¡£ ¥Ç¥Õ¥©¥ë¥È¤Î¥Ñ¥¹¤Ï¾ì¹ç¤Ë¤è¤Ã¤ÆÍÍ¡¹¤Ç¤¢¤ë¤¬¡¢Ä̾ï¤Ï /etc/locale ¤È /usr/share/locale °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬Ä´¤Ù¤é¤ì¤ë¡£

´ØÏ¢¹àÌÜ

catgets(3), setlocale(3)