|
|
1.1 root 1:
2:
3: stat() General Function (libc) stat()
4:
5:
6:
7:
8: Find file attributes
9:
10: #include <sys/stat.h>
11: iinntt ssttaatt(_f_i_l_e, _s_t_a_t_p_t_r)
12: cchhaarr *_f_i_l_e; ssttrruucctt ssttaatt *_s_t_a_t_p_t_r;
13:
14: stat returns a structure that contains the attributes of a file,
15: including protection information, file type, and file size.
16:
17: file points to the path name of file. statptr points to a struc-
18: ture of the type stat, as defined in the header file stat.h.
19:
20: The following summarizes the structure stat:
21:
22:
23: struct stat {
24: dev_t st_dev; /* Device */
25: ino_t st_ino; /* i-node number */
26: unsigned short st_mode; /* Mode */
27: short st_nlink; /* Link count */
28: short st_uid; /* User id */
29: short st_gid; /* Group id */
30: dev_t st_rdev; /* Real device */
31: fsize_t st_size; /* Size */
32: time_t st_atime; /* Access time */
33: time_t st_mtime; /* Modify time */
34: time_t st_ctime; /* Change time */
35: };
36:
37:
38: The following lists the legal settings for the element st_mode
39: which defines the file's attributes:
40:
41:
42: SS_IIFFMMTT 0x0170000 File types
43: SS_IIFFRREEGG 0x0100000 Ordinary file
44: SS_IIFFDDIIRR 0x0040000 Directory
45: SS_IIFFCCHHRR 0x0020000 Character-special file
46: SS_IIFFBBLLKK 0x0060000 Block-special file
47: SS_IISSUUIIDD 0x0004000 Set user identifier
48: SS_IISSGGIIDD 0x0002000 Set group identifier
49: SS_IISSVVTTXX 0x0001000 Save text bit
50: SS_IIRREEAADD 0x0000400 Owner read permission
51: SS_IIWWRRIITTEE 0x0000200 Owner write permission
52: SS_IIEEXXEECC 0x0000100 Owner execute permission
53:
54:
55: st_dev and st_ino together form a unique description of the file.
56: The former is the device on which the file and its i-node reside,
57: and the latter is the index number of the file. st_mode gives
58: the permission bits, as outlined above. st_nlink gives the num-
59: ber of links to the file. The user id and group id of the owner
60: are st_uid and st_gid, respectively. st_rdev, which is valid
61: only for special files, holds the major and minor numbers for the
62:
63:
64: COHERENT Lexicon Page 1
65:
66:
67:
68:
69: stat() General Function (libc) stat()
70:
71:
72:
73: file.
74:
75: The entry st_size gives the size of the file, in bytes. For a
76: pipe, the size is the number of bytes waiting to be read from the
77: pipe.
78:
79: Three entries for each file give the last occurrences of various
80: events in the file's history. st_atime gives the time the file
81: was last read or written to. st_mtime gives the time of the last
82: modification, write for files, create or delete entry for direc-
83: tories. st_ctime gives the last change to the attributes, not
84: including times and size.
85:
86: ***** Example *****
87:
88: The following example uses stat to print a file's status.
89:
90:
91: #include <sys/stat.h>
92: main()
93: {
94: struct stat sbuf;
95: int status;
96:
97:
98:
99: if(status = stat("/usr/include", &sbuf)) {
100: printf("Can't find\n");
101: exit(1);
102: }
103:
104:
105:
106: printf("uid = %d gid = %d\n", sbuf.st_uid, sbuf.st_gid);
107: }
108:
109:
110: ***** Files *****
111:
112: <sys/stat.h>
113:
114: ***** See Also *****
115:
116: chmod(), chown(), COHERENT system calls, ls, open()
117:
118: ***** Notes *****
119:
120: stat differs from the related function fstat mainly in that fstat
121: accesses the file through its descriptor, which was returned by a
122: successful call to open, whereas stat takes the file's path name
123: and opens it before checking its status.
124:
125: ***** Diagnostics *****
126:
127: stat returns -1 if an error occurs, e.g., the file cannot be
128:
129:
130: COHERENT Lexicon Page 2
131:
132:
133:
134:
135: stat() General Function (libc) stat()
136:
137:
138:
139: found. Otherwise, it returns zero.
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196: COHERENT Lexicon Page 3
197:
198:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.