µÎ ½Ã½ºÅÛ È£Ãâ stat °ú fstat ´Â ÇÁ·Î±×·¥ÀÌ Á¸ÀçÇÏ´Â
ÈÀÏÀÇ Æ¯¼ºÀ» ¾Ë¼ö ÀÖµµ·Ï ÇÏ¿© ÁØ´Ù.
#include <sys/types.h>
#include <sys/stat.h>
int retval, filedes;
char *pathname;
struct stat buf;
.
.
retval = stat(pathname, &buf);
retval = fstat(filedes, &buf);
pathname Àº ÈÀÏÀ» ½Äº°ÇÏ´Â °æ·ÎÀ̸§À» °¡¸®Å°°í, &buf ´Â
stat ±¸Á¶¸¦ °¡¸®Å°´Â Æ÷ÀÎÅÍÀÌ´Ù. ÀÌ stat ±¸Á¶´Â ÈÀÏ¿¡
°ü·ÃµÈ Á¤º¸¸¦ °¡Áö°í ÀÖ´Ù.
struct stat {
dev_t st_dev;
ino_t st_ino;
ushort st_mode;
short st_nlink;
ushort st_uid;
ushort st_gid;
dev_t st_rdev;
off_t st_size;
time_t st_atime;
time_t st_mtime;
time_t st_ctime;
};
stat ±¸Á¶ÀÇ °¢°¢¿¡ ´ëÇÑ Àǹ̴ ´ÙÀ½°ú °°´Ù.
1. st_dev ´Â ÈÀÏÀÌ µé¾îÀÖ´Â ³í¸®Àû ÀåÄ¡(logical device)¸¦ ±â¼úÇÏ°í,
st_ino ´Â ÈÀÏÀÇ inode ¹øÈ£¸¦ ³ªÅ¸³½´Ù.
2. st_mode ´Â ÈÀϸðµå¸¦ ºÎ¿©ÇÏ°í, ÇÁ·Î±×·¡¸Ó°¡ ÈÀÏ¿¡ °ü·ÃµÈ
Çã°¡¸¦ °è»êÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿©ÁØ´Ù. st_mode ¿¡ µé¾îÀÖ´Â °ªÀº
ÈÀÏÀÇ À¯Çü¿¡ ´ëÇÑ Á¤º¸·Î¼, Çã°¡¿¡ °ü·ÃµÈ °ÍÀº
ÇÏÀ§ 12 ºñÆ®ÀÌ´Ù.
3. st_nlink ´Â ÈÀÏ¿¡ °ü·ÃµÈ ¸µÅ©ÀÇ ¼ö
(´Ù¸¥¸»·Î, ¼·Î ´Ù¸¥ °æ·ÎÀ̸§ÀÇ ¼ö)¸¦ ºÎ¿©ÇÑ´Ù.
ÀÌ °ªÀº link ¿Í unlink È£Ã⠽ø¶´Ù °»½ÅµÈ´Ù.
4. st_uid, st_gid ÀÌ µÎ ±¸Á¶´Â °¢°¢ ÈÀÏÀÇ »ç¿ëÀڽĺ°¹øÈ£¿Í
±×·ì½Äº°¹øÈ£¸¦ ³ªÅ¸³½´Ù. ÃʱâÄ¡´Â
creat ³ª open È£Ãâ·Î¼ ÁöÁ¤µÇ°í, chown È£Ãâ·Î¼
º¯°æµÉ ¼ö ÀÖ´Ù.
5. st_rdev ´Â ÈÀÏ ¿£Æ®¸®°¡ ÀåÄ¡¸¦ ±â¼úÇϴµ¥ »ç¿ëµÉ ¶§¸¸
Àǹ̸¦ °¡Áø´Ù.
6. st_size ´Â ÈÀÏÀÇ ÇöÀç ³í¸®Àû Å©±â·Î¼ ¹ÙÀÌÆ®¼ö¸¦ ºÎ¿©ÇÑ´Ù.
ÀÌ°ÍÀº ÈÀÏÀÇ ³¡¿¡ ¾²±â¸í·ÉÀÌ ÀÖÀ» ¶§¸¶´Ù º¯°æµÈ´Ù.
7. st_atime ´Â ÈÀÏÀÇ ÀÚ·á°¡ ¸¶Áö¸·À¸·Î ÀÐÇû´ø ½Ã°£À» ±â·ÏÇÑ´Ù.
ÃʱâÄ¡·Î creat È£Ãâ½ÃÀÇ ½Ã°£ÀÌ ÁöÁ¤µÈ´Ù.
8. st_mtime ´Â ÈÀÏÀÇ ÀÚ·á°¡ º¯°æµÉ ¶§ÀÇ ½Ã°£À» ±â·ÏÇÑ´Ù.
ÈÀÏ¿¡ ¾²±â ¸í·ÉÀÌ ÀÖÀ»¶§¸¶´Ù º¯°æµÈ´Ù.
9. st_ctime ´Â stat ±¸Á¶ ÀÚü°¡ º¯°æµÉ ¶§ÀÇ ½Ã°£À» ±â·ÏÇÑ´Ù.
ÀÌ°ÍÀ» º¯°æ ÇÏ´Â ½Ã½ºÅÛ È£ÃâÀº link(st_nlink ¶§¹®¿¡),
chmod(st_mode ¶§¹®¿¡), write(st_mtime °ú st_size ¶§¹®¿¡)µîÀÌ ÀÖ´Ù.
|