From owner-man-jp@jp.freebsd.org  Sat Mar 18 21:41:38 2000
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id VAA31865;
	Sat, 18 Mar 2000 21:41:38 +0900 (JST)
	(envelope-from owner-man-jp@jp.FreeBSD.org)
Received: from serio.al.rim.or.jp (serio.al.rim.or.jp [202.247.191.123])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id VAA31860
	for <man-jp@jp.freebsd.org>; Sat, 18 Mar 2000 21:41:38 +0900 (JST)
	(envelope-from kuma@nk.rim.or.jp)
Received: from mail1.rim.or.jp
	by serio.al.rim.or.jp (8.9.3/3.7W/HMX-12) id VAA15458
	for <man-jp@jp.freebsd.org>; Sat, 18 Mar 2000 21:41:38 +0900 (JST)
Received: from laurel.nk.rim.or.jp (JYOcd-01p156.ppp.odn.ad.jp [210.252.246.156]) by mail1.rim.or.jp (3.7W)
	id VAA19857 for <man-jp@jp.freebsd.org>; Sat, 18 Mar 2000 21:41:36 +0900 (JST)
Received: from oasis.laurel.nk.rim.or.jp by laurel.nk.rim.or.jp (8.9.3/8.9.3oasis991011) with ESMTP id VAA01915
	for <man-jp@jp.freebsd.org>; Sat, 18 Mar 2000 21:41:44 +0900 (JST)
Message-Id: <200003181241.VAA01915@laurel.nk.rim.or.jp>
To: man-jp@jp.freebsd.org
In-reply-to: Your message of "Sat, 18 Mar 2000 20:55:16 JST."
	 <200003182055.JIB29445.VPZL@veltec.co.jp> 
Date: Sat, 18 Mar 2000 21:41:44 +0900
From: Norihiro Kumagai <kuma@nk.rim.or.jp>
Reply-To: man-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: man-jp 2236
Subject: [man-jp 2236] stat.2 (cat2 -> man2)
Errors-To: owner-man-jp@jp.freebsd.org
Sender: owner-man-jp@jp.freebsd.org
X-Originator: kuma@nk.rim.or.jp

.\" 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.14.2.1 1999/08/29 14:49:27 peter Exp $
.\"
.Dd May 1, 1995
.Dt STAT 2
.Os BSD 4
.Sh $BL>>N(B
.Nm stat ,
.Nm lstat ,
.Nm fstat
.Nd $B%U%!%$%k%9%F!<%?%9$N<hF@(B
.Sh $B=q<0(B
.Fd #include <sys/types.h>
.Fd #include <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 $B2r@b(B
.Fn stat
$B4X?t$O!"(B
.Fa path
$B$,;X$9%U%!%$%k$N>pJs$r<hF@$7$^$9!#(B
$B;XDj$7$?%U%!%$%k$NFI<h$j8"!"=q9~$_8"!"<B9T8"$OI,MW$"$j$^$;$s$,!"(B
$B$=$N%U%!%$%k$K@hN)$A!"%Q%9L>$GNs5s$5$l$?$9$Y$F$N%G%#%l%/%H%j$O(B
$B8!:w2DG=$G$"$kI,MW$,$"$j$^$9!#(B
.Pp
.Fn lstat
$B$O(B
.Fn stat
$B$K;w$F$$$^$9$,!";XDj$7$?%U%!%$%k$,%7%s%\%j%C%/%j%s%/$G$"$k>l9g!"(B
.Fn lstat
$B$O%j%s%/$N>pJs$rLa$7$^$9!#0lJ}!"(B
.Fn stat
$B$O%j%s%/$,;2>H$9$k%U%!%$%k$N>pJs$rLa$7$^$9!#(B
$B$=$NB>$N%U%!%$%k%7%9%F%`%*%V%8%'%/%H$H0[$J$j!"(B
$B%7%s%\%j%C%/%j%s%/$K$O!"=jM-<T!"%0%k!<%W!"%"%/%;%9%b!<%I!";~9o$J$I(B
$B$,$"$j$^$;$s!#$3$l$i$NB0@-$O!"$=$N%j%s%/$r4^$`%G%#%l%/%H%j$+$i(B
$B<h$i$l$^$9!#%7%s%\%j%C%/%j%s%/$=$N$b$N$r;2>H$7$F(B
.Fn lstat
$B$r8F$S=P$9$H!"%U%!%$%k%?%$%W(B (S_IFLINK)$B!"%5%$%:!"%V%m%C%/!"%j%s%/?t(B
($B>o$K(B 1) $B$7$+La$7$^$;$s!#(B
.Pp
.Fn fstat
$B$O!"%U%!%$%k5-=R;R(B
.Fa fd
$B$G6hJL$5$l$k%*!<%W%s%U%!%$%k$K$D$$$F!">e$HF1$8>pJs$r<hF@$7$^$9!#(B
.Pp
$B0z?t(B
.Fa sb
$B$O!"9=B$BN(B
.Fn stat
$B$X$N%]%$%s%?$G$9!#$3$l$O!"(B
.Aq Pa sys/stat.h
($B2<5-;2>H(B) $B$GDj5A$5$l!"%U%!%$%k$K4X$9$k>pJs$rJ];}$7$^$9!#(B
.Bd -literal
struct stat {
    dev_t     st_dev;           /* inode's device */
    ino_t     st_ino;           /* inode's number */
    mode_t    st_mode;          /*  inode protection  mode  */
    nlink_t   st_nlink;         /* number of hard links */
    uid_t     st_uid;           /* user ID of the file's owner */
    gid_t     st_gid;           /* group  ID  of the file's group */
    dev_t     st_rdev;          /* device type */
#ifndef _POSIX_SOURCE
    struct timespec st_atimespec;   /* time of last access */
    struct timespec st_mtimespec;   /* time of last data modification */
    struct timespec st_ctimespec; /* time of last file status change */
#else
    time_t    st_atime;         /* time of last access */
    long      st_atimensec;     /* nsec of last access */
    time_t    st_mtime;     /* time of last  data modification  */
    long      st_mtimensec;     /* nsec of last data modification */
    time_t    st_ctime;        /* time of last file status change */
    long      st_ctimensec;    /* nsec of last file status change */
#endif
    off_t     st_size;          /* file size in bytes */
    int64_t   st_blocks;        /* blocks allocated for file */
    u_int32_t st_blksize;       /* optimal blocksize for I/O */
    u_int32_t st_flags;         /* user defined flags for file */
    u_int32_t st_gen;           /*  file generation number */
};
.Ed
.Pp
.Fa struct stat
$B$N;~9o$K4X$9$k%U%#!<%k%I$O!"0J2<$N$H$*$j$G$9!#(B
.Bl -tag -width XXXst_mtime
.It st_atime
$B%U%!%$%k$N%G!<%?$,:G8e$K%"%/%;%9$5$l$?;~9o!#(B
.Xr mknod 2 ,
.Xr utimes 2 ,
.Xr read 2
$B%7%9%F%`%3!<%k$GJQ99$5$l$^$9!#(B
.It st_mtime
$B%U%!%$%k$N%G!<%?$,:G8e$K=$@5$5$l$?;~9o!#(B
.Xr mknod 2 ,
.Xr utimes 2 ,
.Xr write 2
$B%7%9%F%`%3!<%k$GJQ99$5$l$^$9!#(B
.It st_ctime
$B%U%!%$%k%9%F!<%?%9$,:G8e$KJQ99$5$l$?;~9o(B (inode $B%G!<%?$N=$@5(B)$B!#(B
.Xr chmod 2 ,
.Xr chown 2 ,
.Xr link 2 ,
.Xr mknod 2 ,
.Xr rename 2 ,
.Xr unlink 2 ,
.Xr utimes 2 ,
.Xr write 2
$B%7%9%F%`%3!<%k$GJQ99$5$l$^$9!#(B
.El
.Pp
.Dv _POSIX_SOURCE
$B$,Dj5A$5$l$F$$$J$$>l9g!";~9o$K4X$9$k%U%#!<%k%I$O0J2<$N$h$&$KDj5A$5$l$^$9!#(B
.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
$B$N%5%$%:$K4X$9$k%U%#!<%k%I$O!"0J2<$N$H$*$j$G$9!#(B
.Bl -tag -width XXXst_blksize
.It st_blksize
$B%U%!%$%k$N:GE,$J(B I/O $B%V%m%C%/%5%$%:!#(B
.It st_blocks
$B%U%!%$%k$K(B 512 $B%P%$%HC10L$G3d$jEv$F$i$l$?%V%m%C%/$N<B:]$N?t!#(B
$BC;$$%7%s%\%j%C%/%j%s%/$,(B i$B%N!<%I$KJ];}$5$l$F$$$k>l9g!"$3$N?tCM$,(B
$B%<%m$K$J$k$3$H$,$"$j$^$9!#(B
.El
.Pp
$B%9%F!<%?%9>pJs%o!<%I(B
.Fa st_mode
$B$K$O!"0J2<$N$h$&$J%S%C%H$,$"$j$^$9!#(B
.Bd -literal
#define S_IFMT 0170000           /* type of file */
#define        S_IFIFO  0010000  /* named pipe (fifo) */
#define        S_IFCHR  0020000  /* character special */
#define        S_IFDIR  0040000  /* directory */
#define        S_IFBLK  0060000  /* block special */
#define        S_IFREG  0100000  /* regular */
#define        S_IFLNK  0120000  /* symbolic link */
#define        S_IFSOCK 0140000  /* socket */
#define        S_IFWHT  0160000  /* whiteout */
#define S_ISUID 0004000  /* set user id on execution */
#define S_ISGID 0002000  /* set group id on execution */
#define S_ISVTX 0001000  /* save swapped text even after use */
#define S_IRUSR 0000400  /* read permission owner */
#define S_IWUSR 0000200  /* write permission owner */
#define S_IXUSR 0000100  /* execute/search permission owner */
.Ed
$B%"%/%;%9%b!<%I$N%j%9%H$K$D$$$F$O!"(B
.Aq Pa sys/stat.h ,
.Xr access 2 ,
.Xr chmod 2
$B$r;2>H$7$F$/$@$5$$!#(B
.Sh $BLa$jCM(B
$BLdBj$J$/=*N;$9$k$H(B 0 $B$,La$5$l$^$9!#(B
$BLdBj$,H/@8$9$k$H(B -1 $B$,La$5$l!"(B
.Va errno
$B$K$=$N%(%i!<$r<($9CM$,@_Dj$5$l$^$9!#(B
.Sh $B8_49@-(B
$BA0%P!<%8%g%s$N%7%9%F%`$G$O!"(B
.Li st_dev ,
.Li st_uid ,
.Li st_gid ,
.Li st_rdev ,
.Li st_size ,
.Li st_blksize ,
.Li st_blocks
$B%U%#!<%k%I$KJL$N%?%$%W$r;HMQ$7$F$$$^$7$?!#(B
.Sh $B%(%i!<(B
.Fn stat
$B$H(B
.Fn lstat
$B$O!"0J2<$N$h$&$J>l9g$K%(%i!<$H$J$j$^$9!#(B
.Bl -tag -width ENAMETOOLONGAA
.It Bq Er ENOTDIR
$B%Q%9%W%l%U%#%C%/%9$N%3%s%]!<%M%s%H$,%G%#%l%/%H%j$K$J$C$F$$$J$$!#(B
.It Bq Er ENAMETOOLONG
$B%Q%9L>$N%3%s%]!<%M%s%H$,(B 255 $BJ8;z$r1[$($F$$$k$+!"%Q%9L>A4BN$,(B
1023 $BJ8;z$r1[$($F$$$k!#(B
.It Bq Er ENOENT
$B;XDj$7$?%U%!%$%k$,B8:_$7$J$$!#(B
.It Bq Er EACCES
$B%Q%9%W%l%U%#%C%/%9$N%3%s%]!<%M%s%H$G8!:w8"$,5qH]$5$l$?!#(B
.It Bq Er ELOOP
$B%Q%9L>$NJQ49$GAx6x$7$?%7%s%\%j%C%/%j%s%/$,B?$9$.$k!#(B
.It Bq Er EFAULT
.Fa sb
$B$+(B
.Em name
$B$,!"IT@5$J%"%I%l%9$r;X$7$F$$$k!#(B
.It Bq Er EIO
$B%U%!%$%k%7%9%F%`$G$NFI$_=q$-Cf$K(B I/O $B%(%i!<$,H/@8$7$?!#(B
.El
.Pp
.Fn fstat
$B$O!"0J2<$N$h$&$J>l9g$K%(%i!<$H$J$j$^$9!#(B
.Bl -tag -width [EFAULT]
.It Bq Er EBADF
.Fa fd
$B$,!"@5$7$$%*!<%W%s%U%!%$%k5-=R;R$K$J$C$F$$$J$$!#(B
.It Bq Er EFAULT
.Fa sb
$B$,IT@5$J%"%I%l%9$r;X$7$F$$$k!#(B
.It Bq Er EIO
$B%U%!%$%k%7%9%F%`$G$NFI$_=q$-Cf$K(B I/O $B%(%i!<$,H/@8$7$?!#(B
.El
.Sh $B4XO"9`L\(B
.Xr access 2 ,
.Xr chmod 2 ,
.Xr chown 2 ,
.Xr utimes 2 ,
.Xr symlink 7
.Pp
.Sh $B%P%0(B
.Fn fstat
$B$r%=%1%C%H(B ($B$*$h$S%Q%$%W(B) $B$KE,MQ$9$k$H!"%V%m%C%/%5%$%:%U%#!<%k%I!"(B
$B$*$h$S8GM-%G%P%$%9$H(B i$B%N!<%IHV9f0J30$K%<%m$NF~$C$?%P%C%U%!$,La$5$l$^$9!#(B
.Sh $B5,3J(B
.Fn stat
$B4X?t8F=P$7$H(B
.Fn fstat
$B4X?t8F=P$7$O!"(B
.St -p1003.1-90
$B$K=`5r$7$F$$$k$O$:$G$9!#(B
.Sh $BNr;K(B
.Fn stat
$B4X?t8F=P$7$H(B
.Fn fstat
$B4X?t8F=P$7$O!"(B
.At v7
$B$KDI2C$5$l$^$7$?!#(B
.Fn lstat
$B4X?t8F=P$7$O!"(B
.Bx 4.2
$B$KDI2C$5$l$^$7$?!#(B
.\" Amended by N.Kumagai 2000-3-18
