ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
HTML º¯È¯¹®¼
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> <chapter lang=ko> <!-- ÀÛ¼ºÀÚ : yundream --> <!-- ÀÛ¼ºÀÏ : 2004/01/27 --> <!-- ¿¬¶ôó : yundream@joinc.co.kr --> <!-- ÇÔ¼ö À̸§À» ÀÔ·ÂÇÕ´Ï´Ù --> <title>stat(2)</title> <!-- ÀÌ°Ç ÇÔ¼ö¿¡ ´ëÇÑ ´ë·«ÀûÀÎ ¼³¸íÀ̱¸¿ä --> <para> ÆÄÀÏÀÇ »óŸ¦ ¾ò¾î¿Â´Ù. </para> <!-- ¿©±â¿¡ ÇÔ¼öÀÇ °£´ÜÇÑ »ç¿ë¹ýÀÌ µé¾î°©´Ï´Ù --> <section> <title>»ç¿ë¹ý</title> <para> <screen> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int stat(const char *file_name, struct stat *buf); int fstat(int filedes, struct stat *buf); int lstat(const char *file_name, struct stat *buf); </screen> </para> </section> <!-- ¿©±â¿£ ÇÔ¼öÀÇ ÀÚ¼¼ÇÑ ¼³¸í ÀÌ µé¾î°©´Ï´Ù --> <section> <title>¼³¸í</title> <para> stat() ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¸é ÆÄÀÏÀÇ »óŸ¦ ¾Ë¾Æ¿Ã¼ö ÀÖ´Ù. ù¹øÂ° ÀÎÀÚ·Î ÁÖ¾îÁø file_name ÀÇ »óŸ¦ ¾ò¾î¿Í¼ µÎ¹øÂ° ÀÎÀÚÀÎ buf ¿¡ ä¿ö ³Ö´Â´Ù. </para> <para> lstat() ÇÔ¼ö´Â ½Éº¼¸¯ ¸µÅ©ÆÄÀÏÀÇ ¿øº»ÆÄÀÏÀÇ »óŸ¦ ¾ò¾î¿Â´Ù´Â °ÍÀ» Á¦¿ÜÇϰí´Â stat() ÇÔ¼ö¿Í µ¿ÀÏÇÏ´Ù. </para> <para> fstat() ´Â open(2) µîÀ» ÅëÇØ¼ ¸¸µé¾îÁø ÆÄÀÏÁö½ÃÀÚ¸¦ ÀÎÀÚ·Î ¹Þ¾ÆµéÀδٴ Á¡ ¿Ü¿¡´Â stat() ¿Í µ¿ÀÏÇÑ ÀÏÀ» ¼öÇàÇÑ´Ù. </para> <para> À̵é ÇÔ¼ö´Â ¼º°øÀûÀ¸·Î ¼öÇàµÉ°æ¿ì ÆÄÀÏÀÇ Á¤º¸¸¦ <emphasis>stat</emphasis>±¸Á¶Ã¼¿¡ º¹»çÇÑ´Ù. stat±¸Á¶Ã¼´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀǵǾî ÀÖ´Ù. <screen> struct stat { dev_t st_dev; /* device */ ino_t st_ino; /* inode */ mode_t st_mode; /* protection */ nlink_t st_nlink; /* number of hard links */ uid_t st_uid; /* user ID of owner */ gid_t st_gid; /* group ID of owner */ dev_t st_rdev; /* device type (if inode device) */ off_t st_size; /* total size, in bytes */ blksize_t st_blksize; /* blocksize for filesystem I/O */ blkcnt_t st_blocks; /* number of blocks allocated */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last modification */ time_t st_ctime; /* time of last change */ }; </screen> </para> </section> <!-- ÇÔ¼ö°¡ µÇµ¹·ÁÁÖ´Â °ªÀ̱¸¿ä --> <section> <title>¹Ýȯ°ª</title> <para> ¼º°øÇÒ°æ¿ì 0À» ½ÇÆÐÇßÀ»°æ¿ì¿¡´Â -1À» ¹ÝȯÇϸç, Àû´çÇÑ errno °ªÀ» ¼³Á¤ÇÑ´Ù. </para> </section> <!-- ¿¡·¯°¡ ¹ß»ýÇßÀ»¶§ µÇµ¹·ÁÁÖ´Â °ªµéÀÔ´Ï´Ù --> <section> <title>¿¡·¯</title> <para> <variablelist> <varlistentry> <term>EBADF</term> <listitem> <para> À߸øµÈ ÆÄÀÏ ÁöÁ¤ÀÚ </para> </listitem> </varlistentry> <varlistentry> <term>ENOENT</term> <listitem> <para> ÆÄÀÏÀ̸§À» ã±â À§ÇÑ °æ·ÎÀÇ ±¸¼º¿ä¼öÁß Á¸ÀçÇÏÁö ¾Ê´Â °æ·Î°¡ ÀÖÀ» °æ¿ì </para> </listitem> </varlistentry> <varlistentry> <term>EACCESST</term> <listitem> <para> Àб⠱ÇÇÑÀÌ ¾ø´Ù. </para> </listitem> </varlistentry> <varlistentry> <term>ENOTDIR</term> <listitem> <para> ±¸¼º¿ä¼ÒÁß µð·ºÅ丮°¡ ¾Æ´Ñ°Ô ÀÖ´Ù. </para> </listitem> </varlistentry> </variablelist> </para> </section> <!-- ¸¶Áö¸·À¸·Î ¿¡Á¦ ÀÔ´Ï´Ù --> <!-- ¿©±â¿¡´Â ¿ÏÀüÇÑ ¿¹Á¦°¡ µé¾î°¡ Àִµ¥, ±»ÀÌ ¿ÏÀüÇÑ ¿¹Á¦¸¦ ¸¸µéÇÊ¿ä ¾øÀÌ --> <!-- ÄÚµå ÀϺκи¸ ÀÛ¼ºÇؼ ¿Ã·ÁÁּŵµ µË´Ï´Ù --> <!-- "<", ">", "&" µîÀº º¯È¯ÇØ ÁÖ¼Å¾ß Çϴµ¥, ±ÍÂúÀ¸½Ã¸é :-) º¯È¯ ÇÏÁö ¾Ê --> <!-- ¾Æµµ µË´Ï´Ù. Á¦°¡ °Ë»ç ÇØ¼ ¿Ã¸®°Ú½À´Ï´Ù --> <!-- ¿¹Á¦¿¡ ´ëÇÑ °£´ÜÇÑ ¼³¸íÀ» Àû¾îÁּŵµ µÇ±¸¿ä --> <section> <title>¿¹Á¦</title> <para> <screen> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include <stdio.h> #include <pwd.h> #include <grp.h> int main(int argc, char **argv) { int return_stat; char *file_name; struct stat file_info; struct passwd *my_passwd; struct group *my_group; mode_t file_mode; if (argc != 2 ) { printf("Usage : ./file_info [file name]\n"); exit(0); } file_name = argv[1]; if ((return_stat = stat(file_name, &file_info)) == -1) { perror("Error : "); exit(0); } file_mode = file_info.st_mode; printf("ÆÄÀÏÀ̸§ : %s\n", file_name); printf("=======================================\n"); printf("ÆÄÀÏ Å¸ÀÔ : "); if (S_ISREG(file_mode)) { printf("Á¤±ÔÆÄÀÏ\n"); } else if (S_ISLNK(file_mode)) { printf("½Éº¼¸¯ ¸µÅ©\n"); } else if (S_ISDIR(file_mode)) { printf("µð·ºÅ丮\n"); } else if (S_ISCHR(file_mode)) { printf("¹®ÀÚ µð¹ÙÀ̽º\n"); } else if (S_ISBLK(file_mode)) { printf("ºí·° µð¹ÙÀ̽º\n"); } else if (S_ISFIFO(file_mode)) { printf("FIFO\n"); } else if (S_ISSOCK(file_mode)) { printf("¼ÒÄÏ\n"); } my_passwd = getpwuid(file_info.st_uid); my_group = getgrgid(file_info.st_gid); printf("OWNER : %s\n", my_passwd->pw_name); printf("GROUP : %s\n", my_group->gr_name); printf("FILE SIZE IS : %d\n", file_info.st_size); printf("¸¶Áö¸· ÀÐÀº ½Ã°£ : %d\n", file_info.st_atime); printf("¸¶Áö¸· ¼öÁ¤ ½Ã°£ : %d\n", file_info.st_mtime); printf("Çϵ帵ũµÈ ÆÄÀϼö : %d\n", file_info.st_nlink); } </screen> </para> </section> </chapter> |
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|