.\" Copyright (c) 1980, 1991, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#) stat. 2 8.4 (Berkeley) 5/1/95 .\" %FreeBSD: src/lib/libc/sys/stat. 2, v 1.16. 2.7 2001/12/14 18:34:01 ru Exp % .\" .\" $FreeBSD: doc/ja_JP.eucJP/man/man2/stat. 2, v 1.10 2002/01/19 04:13:35 horikawa Exp $ .Dd May 1, 1995 .Dt STAT 2 .Os .Sh ¸íĪ .Nm stat , .Nm lstat , .Nm fstat .Nd file statusÀÇ Ãëµæ .Sh ÇÁ·Î±×·¥ ¶óÀ̺귯¸® .Lb libc .Sh ¼­½Ä .In sys/types.h .In sys/stat.h .Ft int .Fn stat "const char *path" "struct stat *sb" .Ft int .Fn lstat "const char *path" "struct stat *sb" .Ft int .Fn fstat "int fd" "struct stat *sb" .Sh ÇØ¼³ .Fn stat ÇÔ¼ö´Â, .Fa path ÇÏÁö¸¸ °¡¸®Å°´Â ÆÄÀÏÀÇ Á¤º¸¸¦ ÃëµæÇÕ´Ï´Ù. ÁöÁ¤ÇÑ ÆÄÀÏÀÇ Àбâ±Ç, ±â·Ï±Ç, ½ÇÇà±ÇÀº ÇÊ¿ä ¾ø½À´Ï´Ù. ±×·¯³ª, ±× ÆÄÀÏ¿¡ µµ´ÞÇÏ´Â ÆÐ½º¸íÀ¸·Î ¿­°ÅµÈ ¸ðµç µð·ºÅ丮´Â, °Ë»ö °¡´ÉÇÏ´Ù¶ó°í ÇÏ´Â °ÍÀÌ ÇÊ¿äÇÕ´Ï´Ù. .Pp .Fn lstat ÇÏ .Fn stat (À»)¸¦ ´à¾Æ ÀÖ½À´Ï´Ù¸¸, ÁöÁ¤ÇÑ ÆÄÀÏÀÌ ±âÈ£ ¿¬°áÀÎ °æ¿ì´Â ´Ù¸¨´Ï´Ù. .Fn lstat (Àº)´Â ¸µÅ©ÀÇ Á¤º¸¸¦ µÇµ¹¸³´Ï´Ù¸¸, .Fn stat (Àº)´Â ¸µÅ©°¡ ÂüÁ¶ÇÏ´Â ÆÄÀÏÀÇ Á¤º¸¸¦ µ¹·ÁÁÝ´Ï´Ù. .Pp .Fn fstat (Àº)´Â, ÆÄÀÏ ±â¼úÀÚ .Fa fd ±×¸®°í ±¸º°µÇ´Â ¿ÀÇ ÆÄÀÏ¿¡ ´ëÇØ, À§¿Í °°Àº Á¤º¸¸¦ ÃëµæÇÕ´Ï´Ù. .Pp Àμö .Fa sb (Àº)´Â, ±¸Á¶Ã¼ .Fn stat ¿¡ÀÇ Æ÷ÀÎÅÍÀÔ´Ï´Ù. À̰ÍÀº, .Aq Pa sys/stat.h (¾Æ·¡¿Í °°ÀÌ ÂüÁ¶)(À¸)·Î Á¤ÀÇµÇ¾î ÆÄÀÏ¿¡ °üÇÑ Á¤º¸¸¦ º¸°ü À¯ÁöÇÕ´Ï´Ù. .Bd -literal struct stat { dev_t st_dev; /* inode ÀÇ µð¹ÙÀ̽º */ ino_t st_ino; /* inode ¹øÈ£ */ mode_t st_mode; /* inode º¸È£ ¸ðµå */ nlink_t st_nlink; /* ÇÏµå ¸µÅ©¼ö */ uid_t st_uid; /* ÆÄÀÏ ¼ÒÀ¯ÀÚÀÇ À¯Àú ID */ gid_t st_gid; /* ÆÄÀÏ ±×·ìÀÇ ±×·ì ID */ dev_t st_rdev; /* µð¹ÙÀ̽º ŸÀÔ */ #ifndef _POSIX_SOURCE struct timespec st_atimespec; /* ¸¶Áö¸· ¾×¼¼½º ½Ã°¢ */ struct timespec st_mtimespec; /* ¸¶Áö¸· µ¥ÀÌÅÍ ¼öÁ¤ ½Ã°¢ */ struct timespec st_ctimespec; /* ¸¶Áö¸· file status ¼öÁ¤ ½Ã°¢ */ #else time_t st_atime; /* ¸¶Áö¸· ¾×¼¼½º ½Ã°¢ */ long st_atimensec; /* ¸¶Áö¸· ¾×¼¼½º ½Ã°¢ÀÇ ³ª³ëÃÊ */ time_t st_mtime; /* ¸¶Áö¸· µ¥ÀÌÅÍ ¼öÁ¤ ½Ã°¢ */ long st_mtimensec; /* ¸¶Áö¸· µ¥ÀÌÅÍ ¼öÁ¤ ½Ã°¢ÀÇ ³ª³ëÃÊ */ time_t st_ctime; /* ¸¶Áö¸· file status ¼öÁ¤ ½Ã°¢ */ long st_ctimensec; /* ¸¶Áö¸· file status ¼öÁ¤ ½Ã°¢ÀÇ ³ª³ëÃÊ */ #endif off_t st_size; /* ¹ÙÀÌÆ® ´ÜÀ§ÀÇ ÆÄÀÏÀÇ Å©±â */ int64_t st_blocks; /* ÆÄÀÏ¿¡ ÇÒ´çÇÒ ¼ö ÀÖ¾ú´ø ºí·Ï¼ö */ u_int32_t st_blksize; /* ÀÔÃâ·Â¿¡ ÃÖÀûÀÎ ºí·Ï »çÀÌÁî */ u_int32_t st_flags; /* ÆÄÀÏ¿¡ ´ëÇÑ À¯Àú Á¤ÀÇ Ç÷¡±× */ u_int32_t st_gen; /* ÆÄÀÏ »ý¼º ¹øÈ£ */ }; .Ed .Pp .Fa struct stat ÀÇ ½Ã°¢¿¡ °üÇÑ Çʵå´Â, ÀÌÇÏ´ë·ÎÀÔ´Ï´Ù. .Bl -tag -width XXXst_mtime .It st_atime ÆÄÀÏÀÇ µ¥ÀÌÅͰ¡ ¸¶Áö¸·¿¡ ¾×¼¼½º µÇ¾úÀ» ¶§ °¢. .Xr mknod 2 , .Xr utimes 2 , .Xr read 2 ½Ã½ºÅÛ ÄÝ·Î º¯°æµË´Ï´Ù. .It st_mtime ÆÄÀÏÀÇ µ¥ÀÌÅͰ¡ ¸¶Áö¸·¿¡ ¼öÁ¤µÇ¾úÀ» ¶§ °¢. .Xr mknod 2 , .Xr utimes 2 , .Xr write 2 ½Ã½ºÅÛ ÄÝ·Î º¯°æµË´Ï´Ù. .It st_ctime file status°¡ ¸¶Áö¸·¿¡ º¯°æµÇ¾úÀ» ¶§ °¢ (inode µ¥ÀÌÅÍÀÇ ¼öÁ¤). .Xr chmod 2 , .Xr chown 2 , .Xr link 2 , .Xr mknod 2 , .Xr rename 2 , .Xr unlink 2 , .Xr utimes 2 , .Xr write 2 ½Ã½ºÅÛ ÄÝ·Î º¯°æµË´Ï´Ù. .El .Pp .Dv _POSIX_SOURCE ÇÏÁö¸¸ Á¤ÀǵǾî ÀÖÁö ¾ÊÀº °æ¿ì, ½Ã°¢¿¡ °üÇÑ Çʵå´Â ÀÌÇÏ¿Í °°ÀÌ Á¤Àǵ˴ϴÙ. .Bd -literal #ifndef _POSIX_SOURCE #define st_atime st_atimespec.tv_sec #define st_mtime st_mtimespec.tv_sec #define st_ctime st_ctimespec.tv_sec #endif .Ed .Pp .Fa struct stat ÀÇ »çÀÌÁî¿¡ °üÇÑ Çʵå´Â, ÀÌÇÏ´ë·ÎÀÔ´Ï´Ù. .Bl -tag -width XXXst_blksize .It st_blksize ÆÄÀÏÀÇ ÃÖÀûÀÎ ÀÔÃâ·Â ºí·Ï »çÀÌÁî. .It st_blocks ÆÄÀÏ¿¡ 512 ¹ÙÀÌÆ® ´ÜÀ§·Î ÇÒ´çÇÒ ¼ö ÀÖ¾ú´ø ºí·ÏÀÇ ½ÇÁ¦ÀÇ ¼ö. ªÀº ±âÈ£ ¿¬°áÀÌ inode ¿¡ º¸°ü À¯ÁöµÇ°í ÀÖ´Â °æ¿ì, ÀÌ ¼öÄ¡°¡ 0 ÀÌ µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. .El .Pp ½ºÅ×ÀÌÅͽº Á¤º¸ ¿öµå .Fa st_mode ¿¡´Â, ÀÌÇÏ¿Í °°Àº ºñÆ®°¡ ÀÖ½À´Ï´Ù. .Bd -literal #define S_IFMT 0170000 /* ÆÄÀÏÀÇ Å¸ÀÔ */ #define S_IFIFO 0010000 /* À̸§ ÷ºÎ ÆÄÀÌÇÁ (fifo) */ #define S_IFCHR 0020000 /* ij¸¯ÅÍÇü Ư¼ö ÆÄÀÏ */ #define S_IFDIR 0040000 /* µð·ºÅ丮 */ #define S_IFBLK 0060000 /* ºí·ÏÇü Ư¼ö ÆÄÀÏ */ #define S_IFREG 0100000 /* Åë»ó */ #define S_IFLNK 0120000 /* ±âÈ£ ¿¬°á */ #define S_IFSOCK 0140000 /* ¼ÒÄÏ */ #define S_IFWHT 0160000 /* È­ÀÌÆ® ¾Æ¿ô */ #define S_ISUID 0004000 /* ½ÇÇà½Ã¿¡ À¯Àú ID ¸¦ ¼³Á¤ */ #define S_ISGID 0002000 /* ½ÇÇà½Ã¿¡ ±×·ì ID ¸¦ ¼³Á¤ */ #define S_ISVTX 0001000 /* »ç¿ëÈÄ¿¡µµ ½º¿Ò µÈ ÅØ½ºÆ®¸¦ º¸Á¸ */ #define S_IRUSR 0000400 /* Àб⠱ÇÇÑÀÇ ¼ÒÀ¯ÀÚ */ #define S_IWUSR 0000200 /* ±âÀÔ ±ÇÇÑÀÇ ¼ÒÀ¯ÀÚ */ #define S_IXUSR 0000100 /* ½ÇÇà/°Ë»ö ±ÇÇÑÀÇ ¼ÒÀ¯ÀÚ */ .Ed ¾×¼¼½º ¸ðµåÀÇ ¸®½ºÆ®¿¡ ´ëÇØ¼­´Â, .Aq Pa sys/stat.h , .Xr access 2 , .Xr chmod 2 (À»)¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. .Sh ¹Ýȯ°ª .Rv -std .Sh ȣȯ¼º ÀÌÀüÀÇ ¹öÁ¯ÀÇ ½Ã½ºÅÛ¿¡¼­´Â, .Li st_dev , .Li st_uid , .Li st_gid , .Li st_rdev , .Li st_size , .Li st_blksize , .Li st_blocks Çʵ忡 ´Ù¸¥ ŸÀÔÀ» »ç¿ëÇϰí ÀÖ¾ú½À´Ï´Ù. .Sh ¿¡·¯ .Fn stat (¿Í)°ú .Fn lstat (Àº)´Â, ÀÌÇÏ¿Í °°Àº °æ¿ì¿¡ ¿¡·¯°¡ µË´Ï´Ù. .Bl -tag -width Er .It Bq Er ENOTDIR ÆÐ½ºÀÇ ¿ø°¡¿ä¼ÒÁß¿¡ µð·ºÅ丮 ÀÌ¿ÜÀÇ °ÍÀÌ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. .It Bq Er ENAMETOOLONG ÆÐ½º¸íÀÇ ¿ø°¡¿ä¼Ò°¡ 255 ij¸¯Å͸¦ ³Ñ°í ÀÖ´ÂÁö, ¶Ç´Â ÆÐ½º¸í Àüü°¡ 1023 ij¸¯Å͸¦ ³Ñ°í ÀÖ½À´Ï´Ù. .It Bq Er ENOENT ÁöÁ¤µÈ ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. .It Bq Er EACCES ÁöÁ¤µÈ ÆÐ½º¿¡´Â, °Ë»öÀÌ Çã°¡µÇ¾î ÀÖÁö ¾ÊÀº µð·ºÅ丮°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. .It Bq Er ELOOP ÆÐ½º¸íÀ» º¯È¯ÇÒ °æ¿ì¿¡ °ËÃâµÈ ±âÈ£ ¿¬°áÀÌ ³Ê¹« ¸¹½À´Ï´Ù. .It Bq Er EFAULT .Fa sb Àΰ¡ .Em name (Àº)´Â, ÇÁ·Î¼¼½º¿¡ ÇÒ´çÇÒ ¼ö ÀÖ¾ú´ø address °ø°£ÀÇ ¹üÀ§¿Ü¸¦ °¡¸®Å°°í ÀÖ½À´Ï´Ù. .It Bq Er EIO ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ÀÇ ÀÐ°í ¾²±âÁß¿¡ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù. .El .Pp .Fn fstat (Àº)´Â, ÀÌÇÏ¿Í °°Àº °æ¿ì¿¡ ¿¡·¯°¡ µË´Ï´Ù. .Bl -tag -width Er .It Bq Er EBADF .Fa fd ÇÏÁö¸¸, À¯È¿ÇÑ ±â¼úÀÚ°¡ ¾Æ´Õ´Ï´Ù. .It Bq Er EFAULT .Fa sb (Àº)´Â, ÇÁ·Î¼¼½º¿¡ ÇÒ´çÇÒ ¼ö ÀÖ¾ú´ø address °ø°£ÀÇ ¹üÀ§¿Ü¸¦ °¡¸®Å°°í ÀÖ½À´Ï´Ù. .It Bq Er EIO ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀÐ°í ¾²±âÇϰí ÀÖ´Â µ¿¾È¿¡ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù. .El .Sh °ü·Ã Ç׸ñ .Xr access 2 , .Xr chmod 2 , .Xr chown 2 , .Xr utimes 2 , .Xr symlink 7 .Sh ¹ö±× .Fn fstat (À»)¸¦ ¼ÒÄÏ ( ¹× ÆÄÀÌÇÁ)¿¡ Àû¿ëÇϸé(ÀÚ), ºí·Ï »çÀÌÁî Çʵå, ¹× °íÀ¯ µð¹ÙÀ̽º¿Í inode ¹øÈ£ À̿ܿ¡ 0 ÀÌ µé¾î°£ ¹öÆÛ°¡ µÇµ¹·ÁÁý´Ï´Ù. .Sh Ç¥ÁØ .Fn stat ÇÔ¼ö È£Ãâ°ú .Fn fstat ÇÔ¼ö È£ÃâÀº, .St -p1003.1-90 ¿¡ ÁذÅÇϰí ÀÖ½À´Ï´Ù. .Sh ¿ª»ç .Fn stat ÇÔ¼ö È£Ãâ°ú .Fn fstat ÇÔ¼ö È£ÃâÀº, .At v7 ±×¸®°í µîÀåÇß½À´Ï´Ù. .Fn lstat ÇÔ¼ö È£ÃâÀº .Bx 4.2 ±×¸®°í µîÀåÇß½À´Ï´Ù. .\" Amended by N.Kumagai 2000-3-18