access

Autres langues

Langue: ja

Version: 2004-06-23 (openSuse - 09/10/07)

Autres sections - même nom

Section: 2 (Appels système)

̾Á°

access - ¥æ¡¼¥¶¡¼¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥¢¥¯¥»¥¹¸¢¤ò¥Á¥§¥Ã¥¯¤¹¤ë

½ñ¼°


#include <unistd.h>



int access(const char *pathname, int mode);

ÀâÌÀ

access() ¤Ï pathname ¤È¤¤¤¦Ì¾Á°¤ò»ý¤Ä¥Õ¥¡¥¤¥ë (¤Þ¤¿¤Ï¾¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¾å¤Î¥ª¥Ö¥¸¥§¥¯¥È) ¤ËÂФ·¤Æ¡¢¥×¥í¥»¥¹¤«¤é¤ÎÆɤ߽Ф·¡¦½ñ¤­¹þ¤ß¤¬µö¤µ¤ì¤Æ¤¤¤ë¤«¡¢ ¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¤¤¤ë¤«¤Ê¤É¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤Ê¤¦¡£ pathname ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ê¤é¤Ð¡¢¤³¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î»²¾È¤¹¤ë ¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥¢¥¯¥»¥¹¸¢¤¬¸¡ºº¤µ¤ì¤ë¡£

mode ¤Ï R_OK, W_OK, X_OK, F_OK ¤Î°ì¤Ä°Ê¾å¤«¤é¹½À®¤µ¤ì¤ë¥Þ¥¹¥¯¤Ç¤¢¤ë¡£

R_OK, W_OK, X_OK ¤Ï¤½¤ì¤¾¤ì ¡Ö¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤ÆÆɤ߹þ¤ßµö²Ä¤¬¤¢¤ë¤«¡× ¡Ö¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ½ñ¤­¹þ¤ßµö²Ä¤¬¤¢¤ë¤«¡× ¡Ö¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¼Â¹Ôµö²Ä¤¬¤¢¤ë¤«¡× ¤Î¥Á¥§¥Ã¥¯¤òÍ׵᤹¤ë¡£ F_OK ¤Ï¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤«¤É¤¦¤«¤Î¤ß¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤è¤¦Í׵᤹¤ë¡£

¸¡ºº¤Ï pathname ¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ø¤Î¥Ñ¥¹¤Ë¸½¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥¢¥¯¥»¥¹¸¢¤Ë°Í¸¤¹¤ë¡£ ¤Þ¤¿¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Î»²¾È¤ò¹Ô¤¦ÅÓÃæ¤Ç½Ð²ñ¤¦¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¤ä¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹¸¢¤Ë¤â°Í¸¤¹¤ë¡£

¥Á¥§¥Ã¥¯¤Ï¡¢¼ÂºÝ¤ÎÁàºî¤Ç»ÈÍѤ¹¤ë¥×¥í¥»¥¹¤Î¼Â¸ú (effective) ID ¤Ç¤Ê¤¯ ¼Â (real) UID ¤ä ¼Â (real) GID ¤Ç¹Ô¤Ê¤ï¤ì¤ë¡£ ¤³¤ì¤Ï set-user-ID ¥×¥í¥°¥é¥à¤Ç¡¢¼Â¹Ô¥æ¡¼¥¶¤Î¸¢¸Â¤ò·èÄꤷ¤ä¤¹¤¯ ¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£

¥¢¥¯¥»¥¹¡¦¥Ó¥Ã¥È¤Î¤ß¤¬¥Á¥§¥Ã¥¯¤µ¤ì¡¢¥Õ¥¡¥¤¥ë¤Î¼ïÎà¤äÆâÍƤϥÁ¥§¥Ã¥¯¤µ¤ì¤Ê¤¤¡£ ½¾¤Ã¤Æ¡¢¥Ç¥£¥ì¥¯¥È¥ê¤¬¡Ö½ñ¤­¹þ¤ß²Äǽ¡×¤È¤Ê¤Ã¤¿¾ì¹ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ë ¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤³¤È¤¬²Äǽ¤Ê¤³¤È¤ò°ÕÌ£¤¹¤ë¤Î¤Ç¤¢¤ê¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ë ¥Õ¥¡¥¤¥ë¤È¤·¤Æ½ñ¤­¹þ¤à¤³¤È¤¬²Äǽ¤Ê¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ ƱÍÍ¤Ë DOS ¤Î¥Õ¥¡¥¤¥ë¤Ï¡Ö¼Â¹Ô²Äǽ¡×¤ÈȽÃǤµ¤ì¤ë¤¬¡¢ execve(2) ¥³¡¼¥ë¤Ï¼ºÇÔ¤¹¤ë¤À¤í¤¦¡£

¥×¥í¥»¥¹¤¬Å¬Àڤʸ¢¸Â¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢ ¥Õ¥¡¥¤¥ë¤Î¼Â¹Ôµö²Ä¥Ó¥Ã¥È¤¬¤Ò¤È¤Ä¤â¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤â¡¢ X_OK ¤òÊÖ¤¹¼ÂÁõ¤â¤¢¤ë¡£

ÊÖ¤êÃÍ

À®¸ù¤·¤¿¾ì¹ç(Á´¤Æ¤ÎÍ׵ᤵ¤ì¤¿µö²Ä¤¬ÆÀ¤é¤ì¤¿¤é)¡¢¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£ ¥¨¥é¡¼¤Î¾ì¹ç (¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î mode ¤ÇÍ׵ᤵ¤ì¤¿µö²Ä¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¤ä¡¢Â¾¤Î¥¨¥é¡¼¤¬µ¯¤­¤¿¾ì¹ç)¡¢ -1 ¤¬ÊÖ¤µ¤ì¡¢ errno ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£

¥¨¥é¡¼

access() ¤Ï°Ê²¼¤Î¾ì¹ç¤Ë¼ºÇÔ¤¹¤ë¡£
EACCES
Í׵ᤵ¤ì¤¿¥¢¥¯¥»¥¹¤Ï ¤½¤Î¥Õ¥¡¥¤¥ë¼«¿È¤ËµñÈݤµ¤ì¤¿¤« pathname ¤Ø»ê¤ë¤Þ¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤Î¤¤¤º¤ì¤«¤ËÂФ¹¤ë¸¡º÷µö²Ä (search permission) ¤¬ÆÀ¤é¤ì¤Ê¤«¤Ã¤¿¡£ (path_resolution(7) ¤â»²¾È¤Î¤³¤È)
ELOOP
pathname ¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£
ENAMETOOLONG
pathname ¤¬Ä¹²á¤®¤ë¡£
ENOENT
pathname ¤ò¹½À®¤¹¤ë¥Ñ¥¹¤Î¤¤¤º¤ì¤«¤¬¡¢Â¸ºß¤·¤Ê¤¤¤«¡¢ »²¾ÈÀè¤Î¤Ê¤¤ (dangling) ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
ENOTDIR
pathname ¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¡¢¼ÂºÝ¤Ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£
EROFS
Æɤ߹þ¤ßÀìÍÑ (read-only) ¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤ËÂФ·¤Æ½ñ¤­¹þ¤ßµö²Ä¤ò Í׵ᤷ¤¿¡£

access() ¤Ï°Ê²¼¤ÎÍýͳ¤Ë¤è¤ê¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¡£

EFAULT
pathname ¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£
EINVAL
mode ¤ËÉÔÀµ¤ÊÃͤ¬»ØÄꤵ¤ì¤¿¡£
EIO
I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£
ENOMEM
¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£
ETXTBSY
¼Â¹ÔÃæ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ½ñ¤­¹þ¤ß¤òÍ׵ᤷ¤¿¡£

½àµò

SVr4, 4.3BSD, POSIX.1-2001.

Ãí°Õ

access() ¤ÏÍ׵ᤵ¤ì¤¿¥¢¥¯¥»¥¹¼ïÊ̤Τ¤¤º¤ì¤«¤Î¥Á¥§¥Ã¥¯¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ ¤¿¤È¤¨Â¾¤Î¼ïÊ̤ΥÁ¥§¥Ã¥¯¤¬À®¸ù¤·¤¿¤È¤·¤Æ¤â¥¨¥é¡¼¤òÊÖ¤¹¡£

access() ¤Ï¡¢ UID ¥Þ¥Ã¥Ô¥ó¥°¤ò»ÈÍѤ·¤¿ NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤ÏÀµ¾ï¤Ë µ¡Ç½¤·¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¤Ð UID ¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ï¥µ¡¼¥Ð¡¼¤Ç ¹Ô¤Ê¤ï¤ì¡¢¸¢Íø¤Î¥Á¥§¥Ã¥¯¤ò¤¹¤ë¥¯¥é¥¤¥¢¥ó¥È¤Ë¤Ï¸«¤¨¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£

·Ù¹ð: ¤¢¤ë¥æ¡¼¥¶¤¬¡¢Î㤨¤Ð open(2) ¤Ë¤è¤ë¥¢¥¯¥»¥¹¤¬²Äǽ¤«¤É¤¦¤«¤ò¡¢(¼ÂºÝ¤Ë¹Ô¤¦Á°¤Ë) access() ¤ò»È¤Ã¤Æ¥Á¥§¥Ã¥¯¤¹¤ë¤Î¤Ï¡¢¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤Î¸¶°ø¤Ë¤Ê¤ë¡£ ¤Ê¤¼¤Ê¤é¥Á¥§¥Ã¥¯¤ò¤·¤Æ¤«¤é ¼ÂºÝ¤Ë¥Õ¥¡¥¤¥ë¤Î¥ª¡¼¥×¥óÁàºî¤ò¤¹¤ë´Ö¤Îû¤¤´Ö³Ö¤ò°­ÍѤǤ­¤ë¤«¤é¤Ç¤¢¤ë¡£

Linux ¤Ç¤ÎÃí°Õ

2.6.20 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ ¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò mount(2) ¤¹¤ëºÝ¤Ë»ØÄꤵ¤ì¤¿ MS_NOEXEC ¥Õ¥é¥°¤Î¸ú²Ì¤ò¡¢ access() ¤Ï̵»ë¤·¤Æ¤¤¤¿¡£ ¥«¡¼¥Í¥ë 2.6.20 °Ê¹ß¤Ç¤Ï¡¢ access() ¤Ï¤³¤Î¥Õ¥é¥°¤ò¹Íθ¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£

´ØÏ¢¹àÌÜ

chmod(2), chown(2), faccessat(2), open(2), setgid(2), setuid(2), stat(2), eauidaccess(3), path_resolution(7)