Rechercher une page de manuel
stat
Langue: ja
Version: 2007-06-08 (openSuse - 09/10/07)
Section: 2 (Appels système)
̾Á°
stat, fstat, lstat - ¥Õ¥¡¥¤¥ë¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë½ñ¼°
#include <sys/types.h>#include <sys/stat.h>
#include <unistd.h>
int stat(const char *path, struct stat *buf);
int fstat(int filedes, struct stat *buf);
int lstat(const char *path, struct stat *buf);
ÀâÌÀ
¤³¤ì¤é¤Î´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÊÖ¤¹¡£ ¥Õ¥¡¥¤¥ë¤½¤Î¤â¤Î¤ËÂФ¹¤ë¥¢¥¯¥»¥¹µö²Ä¤ÏɬÍפȤ·¤Ê¤¤¤¬¡¢ --- stat() ¤È lstat() ¤Î¾ì¹ç¤Ë¤Ï --- ¤½¤Î¥Õ¥¡¥¤¥ë¤Ø»ê¤ë path ¤ò¹½À®¤¹¤ëÁ´¤Æ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ¹¤ë¼Â¹Ô (¸¡º÷) µö²Ä¤¬É¬ÍפǤ¢¤ë¡£
stat() ¤Ï path ¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¾õÂÖ¤ò¼èÆÀ¤·¤Æ buf ¤Ø³ÊǼ¤¹¤ë¡£
lstat() ¤Ï stat() ¤ÈƱ¤¸¤Ç¤¢¤ë¤¬¡¢ path ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¡¢¥ê¥ó¥¯¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¯¡¢ ¥ê¥ó¥¯¼«¿È¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ëÅÀ¤¬°Û¤Ê¤ë¡£
fstat() ¤Ï stat() ¤ÈƱ¤¸¤À¤¬¡¢ ¾õÂÖ¤ò¼èÆÀ¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ filedes ¤Ç»ØÄꤹ¤ë¡£
¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤¤¤º¤ì¤â¡¢·ë²Ì¤ò stat ¹½Â¤ÂΤËÆþ¤ì¤ÆÊÖ¤¹¡£ stat ¹½Â¤ÂΤˤϰʲ¼¤Î¥Õ¥£¡¼¥ë¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë:
-
struct stat { dev_t st_dev; /* ¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¥Ç¥Ð¥¤¥¹¤Î ID */ ino_t st_ino; /* inode ÈÖ¹æ */ mode_t st_mode; /* ¥¢¥¯¥»¥¹Êݸî */ nlink_t st_nlink; /* ¥Ï¡¼¥É¥ê¥ó¥¯¤Î¿ô */ uid_t st_uid; /* ½êͼԤΥ桼¥¶ ID */ gid_t st_gid; /* ½êͼԤΥ°¥ë¡¼¥× ID */ dev_t st_rdev; /* ¥Ç¥Ð¥¤¥¹ ID (Æüì¥Õ¥¡¥¤¥ë¤Î¾ì¹ç) */ off_t st_size; /* Á´ÂΤΥµ¥¤¥º (¥Ð¥¤¥Èñ°Ì) */ blksize_t st_blksize; /* ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à I/O ¤Ç¤Î ¥Ö¥í¥Ã¥¯¥µ¥¤¥º */ blkcnt_t st_blocks; /* ³ä¤êÅö¤Æ¤é¤ì¤¿¥Ö¥í¥Ã¥¯¿ô */ time_t st_atime; /* ºÇ½ª¥¢¥¯¥»¥¹»þ¹ï */ time_t st_mtime; /* ºÇ½ª½¤Àµ»þ¹ï */ time_t st_ctime; /* ºÇ½ª¾õÂÖÊѹ¹»þ¹ï */ };
st_dev ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¥Ç¥Ð¥¤¥¹¤ò¼¨¤¹¡£
st_rdev ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë (inode) ¤¬É½¤¹¥Ç¥Ð¥¤¥¹¤ò¼¨¤¹¡£
st_size ¥Õ¥£¡¼¥ë¥É¤Ï¡¢(Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤«¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ë) ¥Õ¥¡¥¤¥ë¤ÎÂ礤µ¤ò¥Ð¥¤¥Èñ°Ì¤Ç¼¨¤¹¡£ ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ÎÂ礤µ¤Ï¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë ¥Ñ¥¹Ì¾¤ÎŤµ (ºÇ¸å¤Î NULL ¥Ð¥¤¥È¤Ï´Þ¤Þ¤Ê¤¤) ¤Ç¤¢¤ë¡£
st_blocks ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Õ¥¡¥¤¥ë¤ÎÂ礤µ¤ò 512 ¥Ð¥¤¥È¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥ºÃ±°Ì¤Ç¼¨¤¹ ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Õ¥¡¥¤¥ë¤Ë³ä¤êÅö¤Æ¤µ¤ì¤¿¥Ö¥í¥Ã¥¯¿ô¤ò 512 ¥Ð¥¤¥Èñ°Ì¤Ç¼¨¤¹¡£ (Î㤨¤Ð¥Õ¥¡¥¤¥ë¤Ë·ê¤¬¤¢¤ë¤è¤¦¤Ê¾ì¹ç¡¢¤³¤ÎÃÍ¤Ï st_size/512 ¤è¤ê¾®¤µ¤¯¤Ê¤ë¤³¤È¤â¤¢¤ë)¡£
st_blksize ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¸úΨŪ¤Ë¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à I/O ¤¬¤Ç¤¤ë¡Ö¹¥¤Þ¤·¤¤¡× ¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò¼¨¤¹ (¤â¤Ã¤È¾®¤µ¤¤Ã±°Ì¤Ç¥Õ¥¡¥¤¥ë¤Ë½ñ¤¹þ¤ß¤ò¹Ô¤¦¤È¡¢ Æɤ߽Ф·--½¤Àµ--ºÆ½ñ¤¹þ¤ß¤È¤¤¤Ã¤¿Èó¸úΨ¤ÊÆ°ºî¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤«¤â¤·¤ì¤Ê¤¤)¡£
Á´¤Æ¤Î Linux ¤Î¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬Á´¤Æ¤Î»þ´Ö¥Õ¥£¡¼¥ë¥É¤ò ¼ÂÁõ¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ ¥Õ¥¡¥¤¥ë¥¢¥¯¥»¥¹¤¬ st_atime ¥Õ¥£¡¼¥ë¥É¤ò¹¹¿·¤·¤Ê¤¤¤è¤¦¤Ê¤«¤¿¤Á¤Ç¥Þ¥¦¥ó¥È¤Ç¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ (mount(8) ¤Î `noatime' ¥ª¥×¥·¥ç¥ó¤ò»²¾È)
st_atime ¥Õ¥£¡¼¥ë¥É¤Ï¥Õ¥¡¥¤¥ë¥¢¥¯¥»¥¹¤¬¤¢¤Ã¤¿¾ì¹ç¤ËÊѹ¹¤µ¤ì¤ë (Î㤨¤Ð¡¢ execve(2), mknod(2), pipe(2), utime(2) ¤ò»ÈÍѤ·¤¿¾ì¹ç¤ä read(2) ¤Ç 1 ¥Ð¥¤¥È°Ê¾åÆɤ߹þ¤ó¤À¾ì¹ç¤Ê¤É)¡£ mmap(2) ¤Ê¤É¤Î¾¤Î¥ë¡¼¥Á¥ó¤Ç¤Ï¡¢ st_atime ¤Ï¹¹¿·¤µ¤ì¤ë¤³¤È¤â¤¢¤ì¤Ð¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤â¤¢¤ë¡£
st_mtime ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬½¤Àµ¤µ¤ì¤¿¾ì¹ç¤ËÊѹ¹¤µ¤ì¤ë (Î㤨¤Ð¡¢ mknod(2), truncate(2), utime(2) ¤ò»ÈÍѤ·¤¿¾ì¹ç¤ä write(2) ¤Ç 1 ¥Ð¥¤¥È°Ê¾å½ñ¤¹þ¤ß¤ò¤·¤¿¾ì¹ç¤Ê¤É)¡£ ¤µ¤é¤Ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Î st_mtime ¤Ï¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç ¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤¿¤êºï½ü¤µ¤ì¤¿¤ê¤¹¤ë¤ÈÊѹ¹¤µ¤ì¤ë¡£ st_mtime ¥Õ¥£¡¼¥ë¥É¤Ï ½êͼԤ䥰¥ë¡¼¥×¤ä¥Ï¡¼¥É¡¦¥ê¥ó¥¯¿ô¤ä¥â¡¼¥É¤ÎÊѹ¹¤Ç¤ÏÊѹ¹ ¤µ¤ì¤Ê¤¤¡£
st_ctime ¥Õ¥£¡¼¥ë¥É¤Ï½ñ¤¹þ¤ß¤ä inode ¾ðÊó (½êͼԡ¢¥°¥ë¡¼¥×¡¢¥ê¥ó¥¯¿ô¡¢¥â¡¼¥É¤Ê¤É) ¤Î ÀßÄê¤Ë¤è¤Ã¤ÆÊѹ¹¤µ¤ì¤ë¡£
°Ê²¼¤Î POSIX ¥Þ¥¯¥í¤Ï¡¢ st_mode ¥Õ¥£¡¼¥ë¥É ¤Ç»ÈÍѤµ¤ì¤ë¥Õ¥¡¥¤¥ë¼ïÊ̤ΥÁ¥§¥Ã¥¯¤Î¤¿¤á¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë :
-
- S_ISREG(m)
- Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤«?
- S_ISDIR(m)
- ¥Ç¥£¥ì¥¯¥È¥ê¤«?
- S_ISCHR(m)
- ¥¥ã¥é¥¯¥¿¡¼¡¦¥Ç¥Ð¥¤¥¹¤«?
- S_ISBLK(m)
- ¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹¤«?
- S_ISFIFO(m)
- FIFO (̾Á°ÉÕ¤¥Ñ¥¤¥×) ¤«?
- S_ISLNK(m)
- ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤«? (POSIX.1-1996 ¤Ë¤Ï¤Ê¤¤)
- S_ISSOCK(m)
- ¥½¥±¥Ã¥È¤«? (POSIX.1-1996 ¤Ë¤Ï¤Ê¤¤)
°Ê²¼¤Î¥Õ¥é¥°¤¬ st_mode ¥Õ¥£¡¼¥ë¥ÉÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë:
S_IFMT | 0170000 | ¥Õ¥¡¥¤¥ë¼ïÊ̤ò¼¨¤¹¥Ó¥Ã¥ÈÎΰè¤òɽ¤¹¥Ó¥Ã¥È¥Þ¥¹¥¯ |
S_IFSOCK | 0140000 | ¥½¥±¥Ã¥È |
S_IFLNK | 0120000 | ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ |
S_IFREG | 0100000 | Ä̾ï¤Î¥Õ¥¡¥¤¥ë |
S_IFBLK | 0060000 | ¥Ö¥í¥Ã¥¯¡¦¥Ç¥Ð¥¤¥¹ |
S_IFDIR | 0040000 | ¥Ç¥£¥ì¥¯¥È¥ê |
S_IFCHR | 0020000 | ¥¥ã¥é¥¯¥¿¡¼¡¦¥Ç¥Ð¥¤¥¹ |
S_IFIFO | 0010000 | FIFO |
S_ISUID | 0004000 | set-user-ID bit |
S_ISGID | 0002000 | set-group-ID bit (²¼µ»²¾È) |
S_ISVTX | 0001000 | ¥¹¥Æ¥£¥Ã¥¡¼¡¦¥Ó¥Ã¥È (²¼µ»²¾È) |
S_IRWXU | 00700 | ¥Õ¥¡¥¤¥ë½êͼԤΥ¢¥¯¥»¥¹µö²ÄÍѤΥӥåȥޥ¹¥¯ |
S_IRUSR | 00400 | ½êͼԤÎÆɤ߹þ¤ßµö²Ä |
S_IWUSR | 00200 | ½êͼԤνñ¤¹þ¤ßµö²Ä |
S_IXUSR | 00100 | ½êͼԤμ¹Եö²Ä |
S_IRWXG | 00070 | ¥°¥ë¡¼¥×¤Î¥¢¥¯¥»¥¹µö²ÄÍѤΥӥåȥޥ¹¥¯ |
S_IRGRP | 00040 | ¥°¥ë¡¼¥×¤ÎÆɤ߹þ¤ßµö²Ä |
S_IWGRP | 00020 | ¥°¥ë¡¼¥×¤Î½ñ¤¹þ¤ßµö²Ä |
S_IXGRP | 00010 | ¥°¥ë¡¼¥×¤Î¼Â¹Ôµö²Ä |
S_IRWXO | 00007 | ¾¿Í (others) ¤Î¥¢¥¯¥»¥¹µö²ÄÍѤΥӥåȥޥ¹¥¯ |
S_IROTH | 00004 | ¾¿Í¤ÎÆɤ߹þ¤ßµö²Ä |
S_IWOTH | 00002 | ¾¿Í¤Î½ñ¤¹þ¤ßµö²Ä |
S_IXOTH | 00001 | ¾¿Í¤Î¼Â¹Ôµö²Ä |
ÊÖ¤êÃÍ
À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï -1 ¤òÊÖ¤·¡¢ errno ¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£¥¨¥é¡¼
- EACCES
- path ¤¬½ê°¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤È¤½¤Î¾å°Ì¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤¤¤º¤ì¤«¤Ë ÂФ¹¤ë¸¡º÷µö²Ä¤¬¤Ê¤«¤Ã¤¿ (path_resolution(7) ¤â»²¾È¤Î¤³¤È)¡£
- EBADF
- filedes ¤¬ÉÔÀµ¤Ç¤¢¤ë¡£
- EFAULT
- ¥¢¥É¥ì¥¹¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¡£
- ELOOP
- ¥Ñ¥¹¤òé¤ëºÝ¤Ë²ò·è¤¹¤Ù¤¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤¿¡£
- ENAMETOOLONG
- ¥Õ¥¡¥¤¥ë̾¤¬Ä¹²á¤®¤ë¡£
- ENOENT
- ¥Ñ¥¹ path ¤Î¹½À®Í×ÁǤ¬Â¸ºß¤·¤Ê¤¤¤«¡¢¥Ñ¥¹¤¬¶õʸ»úÎó¤Ç¤¢¤ë¡£
- ENOMEM
- ¥«¡¼¥Í¥ë¤Î¥á¥â¥ê¤¬Â¤ê¤Ê¤¤¡£
- ENOTDIR
- ¥Ñ¥¹¤Î¹½À®Í×ÁǤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£
½àµò
¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï SVr4, 4.3BSD, POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ stat() ¤È fstat() ¥³¡¼¥ë¤Ï SVr4, SVID, POSIX, X/OPEN, 4.3BSD ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ lstat() ¥³¡¼¥ë¤Ï 4.3BSD ¤È SVr4 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£st_blocks ¤È st_blksize ¥Õ¥£¡¼¥ë¥É¤Î»ÈÍѤϤ¢¤Þ¤ê°Ü¿¢À¤¬¤Ê¤¤¡£ (¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Ï BSD ¤Ë¤è¤Ã¤ÆƳÆþ¤µ¤ì¤¿¡£ ¥·¥¹¥Æ¥à¤´¤È¤Ë²ò¼á¤¬°Û¤Ê¤Ã¤Æ¤ª¤ê¡¢ NFS ¥Þ¥¦¥ó¥È¤Î¾ì¹ç¤Ë¤ÏƱ¤¸¥·¥¹¥Æ¥à¤Ç¤â°Û¤Ê¤ë²ÄǽÀ¤¬¤¢¤ë)
POSIX ¤Ë¤Ï S_IFMT, S_IFSOCK, S_IFLNK, S_IFREG, S_IFBLK, S_IFDIR, S_IFCHR, S_IFIFO, S_ISVTX ¥Ó¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Îµ½Ò¤Ï¤Ê¤¤¡£¤«¤ï¤ê¤Ë S_ISDIR() ¤Î¤è¤¦¤Ê ¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤è¤¦¤ËÍ׵ᤷ¤Æ¤¤¤ë¡£ S_ISLNK ¤È S_ISSOCK ¥Þ¥¯¥í¤Ï POSIX.1-1996 ¤Ë¤Ï¤Ê¤¤¤¬¡¢ POSIX.1-2001 ¤Ë¤ÏξÊý¤È¤â¸ºß¤¹¤ë¡£ Á°¼Ô¤Ï SVID 4 ¤Ë¡¢¸å¼Ô¤Ï SUSv2 ¤ËͳÍ褷¤Æ¤¤¤ë¡£
Unix V7 (¤È¤½¤Î¸å¤Î¥·¥¹¥Æ¥à) ¤Ï S_IREAD, S_IWRITE, S_IEXEC ¤ò»ý¤Ã¤Æ¤ª¤ê¡¢ POSIX ¤Ï¤½¤ÎƱµÁ¸ì¤È¤·¤Æ S_IRUSR, S_IWUSR, S_IXUSR ¤òµ¬Äꤷ¤Æ¤¤¤ë¡£
¾¤Î¥·¥¹¥Æ¥à
³Æ¼ï¥·¥¹¥Æ¥à¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤¿(¤¤¤ë)ÃÍ:16¿Ê | ̾Á° | ls | 8¿Ê¿ô | ÀâÌÀ |
f000 | S_IFMT | 170000 | ¥Õ¥¡¥¤¥ë¼ïÊÌ¥Õ¥£¡¼¥ë¥É¤Î¥Ó¥Ã¥È¥Þ¥¹¥¯ | |
0000 | 000000 | SCO ¤Ç¤Ï »ÈÍÑÉÔǽ inode | ||
BSD ¤Ç¤Ï̤ÃΤΥե¡¥¤¥ë¼ïÊÌ | ||||
SVID-v2 ¤È XPG2 ¤Ç¤Ï 0 ¤È 0100000 ¤Î | ||||
ξÊý¤¬ÉáÄ̤Υե¡¥¤¥ë | ||||
1000 | S_IFIFO | p| | 010000 | FIFO (̾Á°ÉÕ¤¥Ñ¥¤¥×) |
2000 | S_IFCHR | c | 020000 | ¥¥ã¥é¥¯¥¿Æüì¥Õ¥¡¥¤¥ë (V7) |
3000 | S_IFMPC | 030000 | ¿½Å²½¤µ¤ì¤¿¥¥ã¥é¥¯¥¿Æüì¥Õ¥¡¥¤¥ë (V7) | |
4000 | S_IFDIR | d/ | 040000 | ¥Ç¥£¥ì¥¯¥È¥ê (V7) |
5000 | S_IFNAM | 050000 | XENIX Æó¤Ä¤ÎÉû·¿¤ò»ý¤Ä̾Á°ÉÕ¤¤Î | |
Æüì¥Õ¥¡¥¤¥ë | ||||
Éû·¿¤Ï st_rdev ¤ÎÃÍ 1,2 ¤Ç¶èÊ̤µ¤ì¤ë: | ||||
0001 | S_INSEM | s | 000001 | XENIX IFNAM¤Î¥»¥Þ¥Õ¥©¡¼Éû·¿ |
0002 | S_INSHD | m | 000002 | XENIX IFNAM¤Î¶¦Í¥Ç¡¼¥¿Éû·¿ |
6000 | S_IFBLK | b | 060000 | ¥Ö¥í¥Ã¥¯Æüì¥Õ¥¡¥¤¥ë (V7) |
7000 | S_IFMPB | 070000 | ¿½Å²½¤µ¤ì¤¿¥Ö¥í¥Ã¥¯Æüì¥Õ¥¡¥¤¥ë (V7) | |
8000 | S_IFREG | - | 100000 | Ä̾ï¥Õ¥¡¥¤¥ë (V7) |
9000 | S_IFCMP | 110000 | VxFS °µ½Ì¥Õ¥¡¥¤¥ë | |
9000 | S_IFNWK | n | 110000 | ¥Í¥Ã¥È¥ï¡¼¥¯Æüì¥Õ¥¡¥¤¥ë (HP-UX) |
a000 | S_IFLNK | l@ | 120000 | ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ (BSD) |
b000 | S_IFSHAD | 130000 | Solaris ACL ¤Î¤¿¤á¤Î±£¤µ¤ì¤¿ inode | |
(¥æ¡¼¥¶¶õ´Ö¤«¤é¤Ï¸«¤¨¤Ê¤¤) | ||||
c000 | S_IFSOCK | s= | 140000 | ¥½¥±¥Ã¥È (BSD; VxFS ¤Î "S_IFSOC") |
d000 | S_IFDOOR | D> | 150000 | Solaris ¥É¥¢¡¦¥Õ¥¡¥¤¥ë |
e000 | S_IFWHT | w% | 160000 | BSD ¶õÇò¥Õ¥¡¥¤¥ë (inode ¤ò»ÈÍѤ·¤Ê¤¤) |
0200 | S_ISVTX | 001000 | `¥¹¥Æ¥£¥Ã¥¡¼¡¦¥Ó¥Ã¥È':»ÈÍѸå¤â | |
¥¹¥ï¥Ã¥×¤Ë»Ä¤¹ (V7) | ||||
ͽÌó (SVID-v2) | ||||
¥Ç¥£¥ì¥¯¥È¥ê°Ê³°: ¥Õ¥¡¥¤¥ë¤ò¥¥ã¥Ã¥·¥å | ||||
¤·¤Ê¤¤ (SunOS) | ||||
¥Ç¥£¥ì¥¯¥È¥ê: ºï½üÀ©¸Â¥Õ¥é¥° (SVID-v4.2) | ||||
0400 | S_ISGID | 002000 | ¼Â¹Ô»þ¤Î set-group-ID (V7) | |
¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤Æ¤Ï GID ¤ÎÅÁã¤Ë | ||||
BSD Êý¼°¤ò»ÈÍѤ¹¤ë | ||||
0400 | S_ENFMT | 002000 | SysV ¥Õ¥¡¥¤¥ë¡¦¥í¥Ã¥¯¤ò¶¯À©¤¹¤ë | |
(S_ISGID ¤È¶¦Í) | ||||
0800 | S_ISUID | 004000 | ¼Â¹Ô»þ¤Î set-user-ID (V7) | |
0800 | S_CDF | 004000 | ¥Ç¥£¥ì¥¯¥È¥ê¤¬¾õ¶·°Í¸¥Õ¥¡¥¤¥ë (HP-UX) |
¥¹¥Æ¥£¥Ã¥¡¼ ¥³¥Þ¥ó¥É¤Ï Version 32V AT&T UNIX ¤ÇÅо줷¤¿¡£
Ãí°Õ
Linux ¤Ç¤ÎÃí°Õ
¥«¡¼¥Í¥ë 2.5.48 °Ê¹ß¤Ç¤Ï¡¢ stat ¹½Â¤ÂÎ¤Ï 3¤Ä¤Î¥Õ¥¡¥¤¥ë¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×´ØÏ¢¤Î¥Õ¥£¡¼¥ë¥É¤Ç ¥Ê¥ÎÉÃñ°Ì¤ÎÀºÅÙ¤ËÂбþ¤·¤Æ¤¤¤ë¡£ glibc ¤Ç¤Ï¡¢³Æ¥Õ¥£¡¼¥ë¥É¤Î¥Ê¥ÎÉäξðÊó¤ò st_atim.tv_nsec ¤ä st_atimensec ¤È¤¤¤Ã¤¿·Á¤Ç»²¾È¤Ç¤¤ë¡£ µ¡Ç½¸¡ºº¥Þ¥¯¥í _BSD_SOURCE ¤« _SVID_SOURCE ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï st_atim.tv_nsec ¤Î·Á¼°¤Ç¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï st_atimensec ¤Î·Á¼°¤È¤Ê¤ë¡£ Éäè¤êºÙ¤«¤¤¥¿¥¤¥à¥¹¥¿¥ó¥×¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ ¤³¤ì¤é¤Î¥Ê¥ÎÉäΥե£¡¼¥ë¥É¤Ï 0 ¤ËÀßÄꤵ¤ì¤ë¡£/proc ¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤Î¤Û¤È¤ó¤É¤Ç¤Ï¡¢ stat() ¤ò¸Æ¤Ó½Ð¤·¤¿ºÝ¤Ë¡¢ st_size ¥Õ¥£¡¼¥ë¥É¤Ë¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬ÊÖ¤µ¤ì¤Ê¤¤¡£ Âå¤ï¤ê¤Ë st_size ¥Õ¥£¡¼¥ë¥É¤Ë¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£
Îã
°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï stat(2) ¤ò¸Æ¤Ó½Ð¤·¡¢Ê֤äƤ¤¿ stat ¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¤¤¤¯¤Ä¤«¤òɽ¼¨¤¹¤ë¡£#include <sys/types.h> #include <sys/stat.h> #include <time.h> #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { struct stat sb; if (argc != 2) { fprintf(stderr, "Usage: %s <pathname>\n", argv[0]); exit(EXIT_FAILURE); } if (stat(argv[1], &sb) == -1) { perror("stat"); exit(EXIT_SUCCESS); } printf("File type: "); switch (sb.st_mode & S_IFMT) { case S_IFBLK: printf("block device\n"); break; case S_IFCHR: printf("character device\n"); break; case S_IFDIR: printf("directory\n"); break; case S_IFIFO: printf("FIFO/pipe\n"); break; case S_IFLNK: printf("symlink\n"); break; case S_IFREG: printf("regular file\n"); break; case S_IFSOCK: printf("socket\n"); break; default: printf("unknown?\n"); break; } printf("I-node number: %ld\n", (long) sb.st_ino); printf("Mode: %lo (octal)\n", (unsigned long) sb.st_mode); printf("Link count: %ld\n", (long) sb.st_nlink); printf("Ownership: UID=%ld GID=%ld\n", (long) sb.st_uid, (long) sb.st_gid); printf("Preferred I/O block size: %ld bytes\n", (long) sb.st_blksize); printf("File size: %lld bytes\n", (long long) sb.st_size); printf("Blocks allocated: %lld\n", (long long) sb.st_blocks); printf("Last i-node change: %s", ctime(&sb.st_ctime)); printf("Last file access: %s", ctime(&sb.st_atime)); printf("Last file modification: %s", ctime(&sb.st_mtime)); exit(EXIT_SUCCESS); }
´ØÏ¢¹àÌÜ
access(2), chmod(2), chown(2), fstatat(2), readlink(2), utime(2), capabilities(7)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre