|
1 /** @file ../include/sys/stat.h |
|
2 @internalComponent |
|
3 */ |
|
4 |
|
5 /** @fn chmod(const char *_path, mode_t _mode) |
|
6 @param _path |
|
7 @param _mode |
|
8 |
|
9 Note: This description also covers the following functions - |
|
10 fchmod() lchmod() |
|
11 |
|
12 @return Upon successful completion, the value 0 is returned; otherwise the |
|
13 value -1 is returned and the global variable errno is set to indicate the |
|
14 error. |
|
15 |
|
16 @code |
|
17 #include < sys/stat.h > : |
|
18 @endcode |
|
19 The file permission bits of the file named specified by _path or referenced by the file descriptor fd are changed to _mode. The chmod system call verifies that the process owner (user) either owns |
|
20 the file specified by _path (or fd ), |
|
21 or |
|
22 is the super-user. |
|
23 The chmod system call follows symbolic links to operate on the target of the link |
|
24 rather than the link itself. |
|
25 |
|
26 The lchmod system call is similar to chmod but does not follow symbolic links. |
|
27 |
|
28 A mode is created from ored permission bit masks |
|
29 defined in \#include \<sys/stat.h\> : |
|
30 |
|
31 @code |
|
32 #define S_IRWXU 0000700 // RWX mask for owner |
|
33 #define S_IRUSR 0000400 // R for owner |
|
34 #define S_IWUSR 0000200 // W for owner |
|
35 #define S_IXUSR 0000100 // X for owner |
|
36 #define S_IRWXG 0000070 // RWX mask for group |
|
37 #define S_IRGRP 0000040 // R for group |
|
38 #define S_IWGRP 0000020 // W for group |
|
39 #define S_IXGRP 0000010 // X for group |
|
40 #define S_IRWXO 0000007 // RWX mask for other |
|
41 #define S_IROTH 0000004 // R for other |
|
42 #define S_IWOTH 0000002 // W for other |
|
43 #define S_IXOTH 0000001 // X for other |
|
44 #define S_ISUID 0004000 // set user id on execution |
|
45 #define S_ISGID 0002000 // set group id on execution |
|
46 #ifndef __BSD_VISIBLE |
|
47 #define S_ISTXT 0001000 // sticky bit |
|
48 #endif |
|
49 @endcode |
|
50 |
|
51 Notes : |
|
52 |
|
53 Sticky bit and set id on execution are not supported. |
|
54 |
|
55 Permission values for group and others are ignored as there is no concept of |
|
56 group and others on the Symbian OS. |
|
57 The flag bits S_IXUSR, S_IXGRP & S_IXOTH are ignored as execute permissions on a file are meaningless on Symbian OS. |
|
58 |
|
59 An attempt to change file permission to write-only changes the file permission |
|
60 to read-write. |
|
61 |
|
62 Either or both of S_IRUSR or S_IWUSR bits must be set in the _mode argument, else chmod fails with EINVAL. |
|
63 |
|
64 Permissions for directories are ignored. |
|
65 |
|
66 000 mode is treated as invalid mode as Symbian OS cannot have entries with |
|
67 both read and write permissions absent. |
|
68 |
|
69 |
|
70 |
|
71 Examples: |
|
72 @code |
|
73 /*Detailed description: This test code demonstartes usage of chmod system call, it |
|
74 * changes mode of file Example.txt in the current working directory to read-only. |
|
75 * Preconditions: Example.txt file should be present in the current working directory. |
|
76 */ |
|
77 int main() |
|
78 { |
|
79 if(chmod("Example.txt" , 0444) < 0 ) |
|
80 { |
|
81 printf("change mode of file Example.txt failed"); |
|
82 return -1; |
|
83 } |
|
84 printf("Chmod system call successful"); |
|
85 return 0; |
|
86 } |
|
87 |
|
88 @endcode |
|
89 Output |
|
90 @code |
|
91 Chmod system call successful |
|
92 |
|
93 @endcode |
|
94 @code |
|
95 /* Detailed description : This sample code demonstrates the usage of fchmod system call, this code |
|
96 * changes mode of file Example.txt using fchmod system call. |
|
97 */ |
|
98 #include <sys/types.h> |
|
99 #include <sys/stat.h> |
|
100 #include <fcntl.h> |
|
101 int main() |
|
102 { |
|
103 int fd = 0; |
|
104 fd = open("Example.txt" , O_CREAT | O_RDWR , 0666); |
|
105 if(fd < 0 ) { |
|
106 printf("Failed to open file Example.txt"); |
|
107 return -1; |
|
108 } |
|
109 if(fchmod(fd , 0444) < 0 ) { |
|
110 printf("fchmod failed to change mode of file Example.txt"); |
|
111 return -1; |
|
112 } |
|
113 printf("Fchmod call changed mode of Example.txt"); |
|
114 return 0; |
|
115 } |
|
116 |
|
117 @endcode |
|
118 Output |
|
119 @code |
|
120 Fchmod call changed mode of Example.txt |
|
121 |
|
122 @endcode |
|
123 |
|
124 Limitations: |
|
125 |
|
126 KErrNotReady of Symbian error code is mapped to ENOENT, which typically means drive |
|
127 not found or filesystem not mounted on the drive. |
|
128 |
|
129 @see chmod() |
|
130 @see chown() |
|
131 @see open() |
|
132 @see stat() |
|
133 |
|
134 |
|
135 |
|
136 @capability Deferred @ref RFs::SetAtt(const TDesC16&, unsigned, unsigned) |
|
137 |
|
138 @publishedAll |
|
139 @externallyDefinedApi |
|
140 */ |
|
141 |
|
142 /** @fn fchmod(int fd, mode_t _mode) |
|
143 @param fd |
|
144 @param _mode |
|
145 |
|
146 Refer to chmod() for the documentation |
|
147 |
|
148 @see chmod() |
|
149 @see chown() |
|
150 @see open() |
|
151 @see stat() |
|
152 |
|
153 |
|
154 |
|
155 |
|
156 @publishedAll |
|
157 @externallyDefinedApi |
|
158 */ |
|
159 |
|
160 /** @fn fstat(int fd, struct stat *st) |
|
161 @param fd |
|
162 @param st |
|
163 |
|
164 Refer to stat() for the documentation |
|
165 |
|
166 Notes: |
|
167 |
|
168 If 'fd' refers to a shared memory object, the implementation updates only the st_uid, st_gid, st_size, |
|
169 and st_mode fields in the stat structure pointed to by the 'st' argument . |
|
170 |
|
171 @see access() |
|
172 @see chmod() |
|
173 @see chown() |
|
174 @see utimes() |
|
175 @see symlink() |
|
176 |
|
177 |
|
178 |
|
179 |
|
180 @publishedAll |
|
181 @externallyDefinedApi |
|
182 */ |
|
183 |
|
184 /** @fn fstat64(int fd, struct stat64 *st) |
|
185 @param fd |
|
186 @param st |
|
187 |
|
188 For full documentation see: http://www.unix.org/version2/whatsnew/lfs20mar.html#3.0 |
|
189 |
|
190 @see fstat() |
|
191 |
|
192 @publishedAll |
|
193 @externallyDefinedApi |
|
194 */ |
|
195 |
|
196 |
|
197 /** @fn lstat(const char *file_name, struct stat *buf) |
|
198 @param file_name |
|
199 @param buf |
|
200 |
|
201 Refer to stat() for the documentation |
|
202 |
|
203 @see access() |
|
204 @see chmod() |
|
205 @see chown() |
|
206 @see utimes() |
|
207 @see symlink() |
|
208 |
|
209 |
|
210 |
|
211 @capability Deferred @ref RFs::Entry(const TDesC16&, TEntry&) |
|
212 |
|
213 @publishedAll |
|
214 @externallyDefinedApi |
|
215 */ |
|
216 |
|
217 /** @fn lstat64(const char *file_name, struct stat64 *buf) |
|
218 @param file_name |
|
219 @param buf |
|
220 |
|
221 For full documentation see: http://www.unix.org/version2/whatsnew/lfs20mar.html#3.0 |
|
222 |
|
223 @see lstat() |
|
224 |
|
225 @publishedAll |
|
226 @externallyDefinedApi |
|
227 */ |
|
228 |
|
229 /** @fn __xstat(int, const char *file, struct stat *buf) |
|
230 @param file |
|
231 @param buf |
|
232 |
|
233 Refer to stat() for the documentation |
|
234 |
|
235 @see access() |
|
236 @see chmod() |
|
237 @see chown() |
|
238 @see utimes() |
|
239 @see symlink() |
|
240 |
|
241 |
|
242 |
|
243 |
|
244 @publishedAll |
|
245 @released |
|
246 */ |
|
247 |
|
248 /** @fn __xstat64(int, const char *file, struct stat64 *buf) |
|
249 @param file |
|
250 @param buf |
|
251 |
|
252 For full documentation see: http://www.unix.org/version2/whatsnew/lfs20mar.html#3.0 |
|
253 |
|
254 @see __xstat() |
|
255 |
|
256 @publishedAll |
|
257 @released |
|
258 */ |
|
259 |
|
260 /** @fn __lxstat(int, const char *file, struct stat *buf) |
|
261 @param file |
|
262 @param buf |
|
263 |
|
264 Refer to stat() for the documentation |
|
265 |
|
266 @see access() |
|
267 @see chmod() |
|
268 @see chown() |
|
269 @see utimes() |
|
270 @see symlink() |
|
271 |
|
272 |
|
273 |
|
274 |
|
275 @publishedAll |
|
276 @released |
|
277 */ |
|
278 |
|
279 /** @fn __lxstat64(int, const char *file, struct stat64 *buf) |
|
280 @param file |
|
281 @param buf |
|
282 |
|
283 For full documentation see: http://www.unix.org/version2/whatsnew/lfs20mar.html#3.0 |
|
284 |
|
285 @see __lxstat() |
|
286 |
|
287 @publishedAll |
|
288 @released |
|
289 */ |
|
290 |
|
291 |
|
292 /** @fn mkdir(const char *_path, mode_t _mode) |
|
293 @param _path |
|
294 @param _mode |
|
295 @return The mkdir() function returns the value 0 if successful; otherwise the |
|
296 value -1 is returned and the global variable errno is set to indicate the |
|
297 error. |
|
298 |
|
299 The directory _path is created with the access permissions specified by _mode. |
|
300 |
|
301 Notes: |
|
302 |
|
303 _mode values and access permissions are ignored in Symbian OS. |
|
304 |
|
305 The default working directory of a process is initialized to C: \\private\\U ID |
|
306 (UID of the calling application) and any data written into this directory persists between phone resets. |
|
307 |
|
308 The parent directory's time stamp is not updated when a new child is created. |
|
309 |
|
310 The newly created directory will be empty (i.e. it doesn't have "." and |
|
311 ".." entries) |
|
312 |
|
313 Examples: |
|
314 @code |
|
315 /* Detailed description : This test code demonstrates usage of mkdir systemcall, |
|
316 * it creates function a directory Example in current working directory. |
|
317 */ |
|
318 int main() |
|
319 { |
|
320 if(mkdir("Example" , 0666) < 0 ) |
|
321 { |
|
322 printf("Directory creation failed"); |
|
323 return -1; |
|
324 } |
|
325 printf("Directory Example created"); |
|
326 return 0; |
|
327 } |
|
328 |
|
329 @endcode |
|
330 Output |
|
331 @code |
|
332 Directory Example created |
|
333 |
|
334 @endcode |
|
335 |
|
336 Limitations: |
|
337 |
|
338 The path parameter in mkdir() should not exceed 256 characters in length. |
|
339 |
|
340 KErrNotReady of Symbian error code is mapped to ENOENT, which typically means drive |
|
341 not found or filesystem not mounted on the drive. |
|
342 |
|
343 The path given to mkdir() should be complete. Attempting to create a directory my calling mkdir("logs",0400|0200|0100) |
|
344 will pass on emulator but fails on h/w because the cwd is taken as c:\private\uid3 on emulator and |
|
345 z:\private\uid3 on h/w. Since Z drive is a rom on h/w, mkdir() fails by setting errno to 13 on hardware. |
|
346 |
|
347 @see chmod() |
|
348 @see stat() |
|
349 @see umask() |
|
350 |
|
351 |
|
352 |
|
353 @capability Deferred @ref RFs::MkDir(const TDesC16&) |
|
354 |
|
355 @publishedAll |
|
356 @externallyDefinedApi |
|
357 */ |
|
358 |
|
359 |
|
360 /** @fn mkfifo(const char *pathname, mode_t mode) |
|
361 @param pathname |
|
362 @param mode |
|
363 @return The mkfifo function returns the value 0 if successful; otherwise the |
|
364 value -1 is returned and errno is set to indicate the error. |
|
365 |
|
366 The mkfifo system call |
|
367 creates a new FIFO(First In First Out) file with name path. The access permissions are |
|
368 specified by mode and restricted by the umask of the calling process. |
|
369 With the current implementation, the use of umask has no effect. |
|
370 |
|
371 The FIFO's owner ID and group ID are set to root. |
|
372 |
|
373 Please note that running stat on a FIFO file does not provide modification |
|
374 time information (it provides the creation time). Use fstat on the fd to retrieve the last modified |
|
375 time. |
|
376 |
|
377 Examples: |
|
378 @code |
|
379 #include <sys/types.h> |
|
380 #include <sys/stat.h> |
|
381 #include <stdio.h> |
|
382 |
|
383 int main(void) |
|
384 { |
|
385 char *pathname = "C:\XXX"; |
|
386 mode_t mode = 0666; |
|
387 if (mkfifo(pathname, mode) == -1) { |
|
388 printf("mkfifo() failed"); |
|
389 } |
|
390 return 0; |
|
391 } |
|
392 |
|
393 @endcode |
|
394 @see chmod() |
|
395 @see stat() |
|
396 @see umask() |
|
397 |
|
398 Limitations: |
|
399 |
|
400 KErrNotReady of Symbian error code is mapped to ENOENT, which typically means drive |
|
401 not found or filesystem not mounted on the drive. |
|
402 |
|
403 @capability Deferred @ref RFs::Delete(const TDesC16&) |
|
404 |
|
405 @publishedAll |
|
406 @externallyDefinedApi |
|
407 */ |
|
408 |
|
409 /** @fn stat(const char *name, struct stat *st) |
|
410 @param name |
|
411 @param st |
|
412 |
|
413 Note: This description also covers the following functions - |
|
414 lstat() fstat() __xstat() __lxstat() |
|
415 |
|
416 @return Upon successful completion, the value 0 is returned; otherwise the |
|
417 value -1 is returned and the global variable errno is set to indicate the error. |
|
418 |
|
419 @code |
|
420 st_dev The numeric ID of the device containing the file. |
|
421 st_ino The file's inode number. |
|
422 st_nlink |
|
423 The number of hard links to the file. |
|
424 |
|
425 @endcode |
|
426 @code |
|
427 st_atime Time when file data last accessed. |
|
428 Changed by the .Xr utimes 2, read and readv system calls. |
|
429 st_mtime Time when file data last modified. |
|
430 Changed by the mkdir, mkfifo, mknod, utimes, write and writev system calls. |
|
431 st_ctime Time when file status was last changed (inode data modification). |
|
432 Changed by the chmod, chown, creat, link, mkdir, mkfifo, mknod, rename, rmdir, symlink, truncate, unlink, utimes, write and writev system calls. |
|
433 st_birthtime |
|
434 Time when the inode was created. |
|
435 |
|
436 @endcode |
|
437 @code |
|
438 st_size The file size in bytes. |
|
439 st_blksize |
|
440 The optimal I/O block size for the file. |
|
441 st_blocks The actual number of blocks allocated for the file in 512-byte units. |
|
442 As short symbolic links are stored in the inode, this number may |
|
443 be zero. |
|
444 |
|
445 @endcode |
|
446 @code |
|
447 st_uid The user ID of the file's owner. |
|
448 st_gid The group ID of the file. |
|
449 st_mode |
|
450 Status of the file (see below). |
|
451 |
|
452 @endcode |
|
453 @code |
|
454 Test for a block special file. |
|
455 Test for a character special file. |
|
456 Test for a directory. |
|
457 Test for a pipe or FIFO special file. |
|
458 Test for a symbolic link. NOTE: Inode structure is not supported by Symbian OS and hence link count updation is not possible. |
|
459 Check for symbolic link would always fail because of this reason. |
|
460 Test for a regular file. |
|
461 Test for a socket. |
|
462 Test for a whiteout. |
|
463 |
|
464 @endcode |
|
465 The stat system call obtains information about the file pointed to by path. Read, write or execute |
|
466 permission of the named file is not required, but all directories |
|
467 listed in the path name leading to the file must be searchable. |
|
468 |
|
469 The lstat system call is like stat except in the case where the named file is a symbolic link, |
|
470 in which case lstat returns information about the link, |
|
471 while stat returns information about the file the link references. |
|
472 |
|
473 The fstat system call obtains the same information about an open file |
|
474 known by the file descriptor fd. |
|
475 |
|
476 The __xstat and __lxstat system calls are exactly similar to stat and lstat functionality. |
|
477 |
|
478 The sb argument is a pointer to a stat structure as defined by \#include \<sys/stat.h\> and into which information is |
|
479 placed concerning the file. |
|
480 |
|
481 The fields of struct stat |
|
482 related to the file system are as follows: |
|
483 |
|
484 @code |
|
485 |
|
486 st_dev The numeric ID of the device containing the file. |
|
487 st_ino The file's inode number. |
|
488 st_nlink The number of hard links to the file. |
|
489 |
|
490 @endcode |
|
491 |
|
492 The st_dev and st_ino fields together identify the file uniquely within the system. |
|
493 |
|
494 The time-related fields of struct stat |
|
495 are as follows: |
|
496 |
|
497 st_atime Time when file data last accessed. |
|
498 Changed by the .Xr utimes 2, read and readv system calls. |
|
499 st_mtime Time when file data last modified. |
|
500 Changed by the mkdir, mkfifo, mknod, utimes, write and writev system calls. |
|
501 st_ctime Time when file status was last changed (inode data modification). |
|
502 Changed by the chmod, chown, creat, link, mkdir, mkfifo, mknod, rename, rmdir, symlink, truncate, unlink, utimes, write and writev system calls. st_birthtime Time when the inode was created. |
|
503 |
|
504 If _POSIX_SOURCE is not defined, the time-related fields are defined as: |
|
505 |
|
506 @code |
|
507 #ifndef _POSIX_SOURCE |
|
508 #define st_atime st_atimespec.tv_sec |
|
509 #define st_mtime st_mtimespec.tv_sec |
|
510 #define st_ctime st_ctimespec.tv_sec |
|
511 #endif |
|
512 @endcode |
|
513 |
|
514 The size-related fields of the struct stat |
|
515 are as follows: |
|
516 st_size The file size in bytes. |
|
517 st_blksize The optimal I/O block size for the file. st_blocks The actual number of blocks allocated for the file in 512-byte units. |
|
518 |
|
519 As short symbolic links are stored in the inode, this number may |
|
520 be zero. |
|
521 |
|
522 The access-related fields of struct stat |
|
523 are as follows: |
|
524 st_uid The user ID of the file's owner. |
|
525 st_gid The group ID of the file. |
|
526 st_mode Status of the file (see below). |
|
527 |
|
528 The status information word st_mode has the following bits: |
|
529 @code |
|
530 #define S_IFMT 0170000 // type of file |
|
531 #define S_IFIFO 0010000 // named pipe (fifo) |
|
532 #define S_IFCHR 0020000 // character special |
|
533 #define S_IFDIR 0040000 // directory |
|
534 #define S_IFBLK 0060000 // block special |
|
535 #define S_IFREG 0100000 // regular |
|
536 #define S_IFLNK 0120000 // symbolic link |
|
537 #define S_IFSOCK 0140000 // socket |
|
538 #define S_IFWHT 0160000 // whiteout |
|
539 #define S_ISUID 0004000 // set user id on execution |
|
540 #define S_ISGID 0002000 // set group id on execution |
|
541 #define S_ISVTX 0001000 // save swapped text even after use |
|
542 #define S_IRUSR 0000400 // read permission, owner |
|
543 #define S_IWUSR 0000200 // write permission, owner |
|
544 #define S_IXUSR 0000100 // execute/search permission, owner |
|
545 @endcode |
|
546 |
|
547 |
|
548 For a list of access modes, see \#include \<sys/stat.h\> access and chmod The following macros are available to |
|
549 test whether a st_mode value passed in the m argument corresponds to a file of the specified type: S_ISBLK (m); Test for a block special file. S_ISCHR (m); Test for a character special file. S_ISDIR (m); Test for a directory. S_ISFIFO (m); Test for a pipe or FIFO special file. S_ISLNK (m); Test for a symbolic link. NOTE: Inode structure is not supported by Symbian OS and hence link count updation is not possible. |
|
550 Check for symbolic link would always fail because of this reason. S_ISREG (m); Test for a regular file. S_ISSOCK (m); Test for a socket. S_ISWHT (m); Test for a whiteout. |
|
551 |
|
552 The macros evaluate to a non-zero value if the test is true |
|
553 or to the value 0 if the test is false. |
|
554 |
|
555 Note: To obtain correct timestamps of FIFOs use fstat instead of stat call. |
|
556 |
|
557 Examples: |
|
558 @code |
|
559 /* Detailed description: Sample usage of stat system call |
|
560 * Preconditions: Example.txt file should be present in working directory |
|
561 */ |
|
562 #include <fcntl.h> |
|
563 #include <unistd.h> |
|
564 #include <sys/types.h> |
|
565 #include <sys/stat.h> |
|
566 int main() |
|
567 { |
|
568 struct stat buf; |
|
569 if(stat("Example.txt" , &buf;) < 0 ) |
|
570 { |
|
571 printf("Failed to stat Example.txt"); |
|
572 return -1; |
|
573 } |
|
574 printf("Stat system call succeeded"); |
|
575 return 0; |
|
576 } |
|
577 /* |
|
578 * Detailed description: Sample usage of fstat system call |
|
579 * |
|
580 */ |
|
581 #include <fcntl.h> |
|
582 #include <unistd.h> |
|
583 #include <sys/types.h> |
|
584 #include <sys/stat.h> |
|
585 int main() |
|
586 { |
|
587 struct stat buf; |
|
588 int fd = open("Example.txt" , O_RDONLY | O_CREAT , 0666); |
|
589 if(fstat(fd , &buf;) < 0 ) |
|
590 { |
|
591 printf("Failed to stat Example.txt"); |
|
592 return -1; |
|
593 } |
|
594 printf("Stat system call succeeded"); |
|
595 close(fd); |
|
596 return 0; |
|
597 } |
|
598 |
|
599 @endcode |
|
600 Output |
|
601 @code |
|
602 Stat system call succeeded |
|
603 |
|
604 @endcode |
|
605 Output |
|
606 @code |
|
607 Stat system call succeeded |
|
608 |
|
609 @endcode |
|
610 |
|
611 Limitations: |
|
612 |
|
613 The path parameters of the stat() and lstat() functions should not exceed 256 characters each in length. |
|
614 |
|
615 KErrNotReady of Symbian error code is mapped to ENOENT, which typically means drive |
|
616 not found or filesystem not mounted on the drive. |
|
617 |
|
618 @see access() |
|
619 @see chmod() |
|
620 @see chown() |
|
621 @see utimes() |
|
622 @see symlink() |
|
623 |
|
624 |
|
625 |
|
626 @capability Deferred @ref RFs::Entry(const TDesC16&, TEntry&) |
|
627 |
|
628 @publishedAll |
|
629 @externallyDefinedApi |
|
630 */ |
|
631 |
|
632 /** @fn stat64(const char *name, struct stat64 *st) |
|
633 @param name |
|
634 @param st |
|
635 @return Upon successful completion, the value 0 is returned; otherwise the |
|
636 value -1 is returned and the global variable errno is set to indicate the error. |
|
637 |
|
638 For full documentation see: http://www.unix.org/version2/whatsnew/lfs20mar.html#3.0 |
|
639 |
|
640 @see stat() |
|
641 |
|
642 @publishedAll |
|
643 @externallyDefinedApi |
|
644 */ |
|
645 |
|
646 /** @fn umask(mode_t cmask) |
|
647 @param cmask |
|
648 @return This function always returns MASK_RWUSR. |
|
649 |
|
650 This function is build supported but not available functionally. Symbian |
|
651 OS does not support multiple users and groups |
|
652 |
|
653 |
|
654 |
|
655 |
|
656 |
|
657 @publishedAll |
|
658 @externallyDefinedApi |
|
659 */ |
|
660 |
|
661 |
|
662 /** @struct stat |
|
663 |
|
664 This structure provides detailed information about a file. The information returned depends on the type of file and/or the file system on which the file resides. |
|
665 Includes following members, |
|
666 |
|
667 @publishedAll |
|
668 @externallyDefinedApi |
|
669 */ |
|
670 |
|
671 /** @var stat::st_dev |
|
672 inode's device |
|
673 */ |
|
674 |
|
675 /** @var stat::st_ino |
|
676 inode's number |
|
677 */ |
|
678 |
|
679 /** @var stat::st_mode |
|
680 inode protection mode |
|
681 */ |
|
682 |
|
683 /** @var stat::st_nlink |
|
684 number of hard links |
|
685 */ |
|
686 |
|
687 /** @var stat::st_uid |
|
688 user ID of the file's owner |
|
689 */ |
|
690 |
|
691 /** @var stat::st_gid |
|
692 group ID of the file's group |
|
693 */ |
|
694 |
|
695 /** @var stat::st_rdev |
|
696 device type |
|
697 */ |
|
698 |
|
699 /** @var stat::st_atimespec |
|
700 time of last access |
|
701 */ |
|
702 |
|
703 /** @var stat::st_mtimespec |
|
704 time of last data modification |
|
705 */ |
|
706 |
|
707 /** @var stat::st_ctimespec |
|
708 time of last file status change |
|
709 */ |
|
710 |
|
711 /** @var stat::st_size |
|
712 file size, in bytes |
|
713 */ |
|
714 |
|
715 /** @var stat::st_blocks |
|
716 blocks allocated for file |
|
717 */ |
|
718 |
|
719 /** @var stat::st_blksize |
|
720 optimal blocksize for IO |
|
721 */ |
|
722 |
|
723 /** @var stat::st_flags |
|
724 user defined flags for file |
|
725 */ |
|
726 |
|
727 /** @var stat::st_gen |
|
728 file generation number |
|
729 */ |
|
730 |
|
731 /** @struct stat64 |
|
732 |
|
733 The stat64 structure is similar to the stat structure, except that it is capable of returning information about files that are larger than 2 gigabytes. |
|
734 This structure provides detailed information about a file. The information returned depends on the type of file and/or the file system on which the file resides. |
|
735 Includes following members, |
|
736 |
|
737 @publishedAll |
|
738 @externallyDefinedApi |
|
739 */ |
|
740 |
|
741 /** @var stat64::st_dev |
|
742 inode's device |
|
743 */ |
|
744 |
|
745 /** @var stat64::st_ino |
|
746 inode's number |
|
747 */ |
|
748 |
|
749 /** @var stat64::st_mode |
|
750 inode protection mode |
|
751 */ |
|
752 |
|
753 /** @var stat64::st_nlink |
|
754 number of hard links |
|
755 */ |
|
756 |
|
757 /** @var stat64::st_uid |
|
758 user ID of the file's owner |
|
759 */ |
|
760 |
|
761 /** @var stat64::st_gid |
|
762 group ID of the file's group |
|
763 */ |
|
764 |
|
765 /** @var stat64::st_rdev |
|
766 device type |
|
767 */ |
|
768 |
|
769 /** @var stat64::st_atimespec |
|
770 time of last access |
|
771 */ |
|
772 |
|
773 /** @var stat64::st_mtimespec |
|
774 time of last data modification |
|
775 */ |
|
776 |
|
777 /** @var stat64::st_ctimespec |
|
778 time of last file status change |
|
779 */ |
|
780 |
|
781 /** @var stat64::st_size |
|
782 file size, in bytes |
|
783 */ |
|
784 |
|
785 /** @var stat64::st_blocks |
|
786 blocks allocated for file |
|
787 */ |
|
788 |
|
789 /** @var stat64::st_blksize |
|
790 optimal blocksize for IO |
|
791 */ |
|
792 |
|
793 /** @var stat64::st_flags |
|
794 user defined flags for file |
|
795 */ |
|
796 |
|
797 /** @var stat64::st_gen |
|
798 file generation number |
|
799 */ |
|
800 |
|
801 |
|
802 /** @def S_IRWXU |
|
803 |
|
804 RWX mask for owner |
|
805 |
|
806 @publishedAll |
|
807 @externallyDefinedApi |
|
808 */ |
|
809 |
|
810 /** @def S_IRUSR |
|
811 |
|
812 R for owner |
|
813 |
|
814 @publishedAll |
|
815 @externallyDefinedApi |
|
816 */ |
|
817 |
|
818 /** @def S_IWUSR |
|
819 |
|
820 W for owner |
|
821 |
|
822 @publishedAll |
|
823 @externallyDefinedApi |
|
824 */ |
|
825 |
|
826 /** @def S_IXUSR |
|
827 |
|
828 X for owner |
|
829 |
|
830 @publishedAll |
|
831 @externallyDefinedApi |
|
832 */ |
|
833 |
|
834 |
|
835 /** @def S_IFMT |
|
836 |
|
837 type of file mask |
|
838 |
|
839 @publishedAll |
|
840 @externallyDefinedApi |
|
841 */ |
|
842 |
|
843 /** @def S_IFIFO |
|
844 |
|
845 named pipe (fifo) |
|
846 |
|
847 @publishedAll |
|
848 @externallyDefinedApi |
|
849 */ |
|
850 |
|
851 /** @def S_IFCHR |
|
852 |
|
853 character special |
|
854 |
|
855 @publishedAll |
|
856 @externallyDefinedApi |
|
857 */ |
|
858 |
|
859 /** @def S_IFDIR |
|
860 |
|
861 directory |
|
862 |
|
863 @publishedAll |
|
864 @externallyDefinedApi |
|
865 */ |
|
866 |
|
867 /** @def S_IFBLK |
|
868 |
|
869 block special |
|
870 |
|
871 @publishedAll |
|
872 @externallyDefinedApi |
|
873 */ |
|
874 |
|
875 /** @def S_IFREG |
|
876 |
|
877 regular |
|
878 |
|
879 @publishedAll |
|
880 @externallyDefinedApi |
|
881 */ |
|
882 |
|
883 /** @def S_IFLNK |
|
884 |
|
885 symbolic link |
|
886 |
|
887 @publishedAll |
|
888 @externallyDefinedApi |
|
889 */ |
|
890 |
|
891 /** @def S_ISDIR(m) |
|
892 |
|
893 directory. |
|
894 |
|
895 @publishedAll |
|
896 @externallyDefinedApi |
|
897 */ |
|
898 |
|
899 /** @def S_ISCHR(m) |
|
900 |
|
901 char special. |
|
902 |
|
903 @publishedAll |
|
904 @externallyDefinedApi |
|
905 */ |
|
906 |
|
907 /** @def S_ISLNK(m) |
|
908 |
|
909 symbolic link |
|
910 |
|
911 @publishedAll |
|
912 @externallyDefinedApi |
|
913 */ |
|
914 |
|
915 /** @def S_ISBLK(m) |
|
916 |
|
917 block special |
|
918 |
|
919 @publishedAll |
|
920 @externallyDefinedApi |
|
921 */ |
|
922 |
|
923 /** @def S_ISREG(m) |
|
924 |
|
925 regular file |
|
926 |
|
927 @publishedAll |
|
928 @externallyDefinedApi |
|
929 */ |
|
930 |
|
931 /** @def S_ISFIFO(m) |
|
932 |
|
933 fifo or socket |
|
934 |
|
935 @publishedAll |
|
936 @externallyDefinedApi |
|
937 */ |
|
938 |
|
939 /** @def S_ISUID |
|
940 |
|
941 set user id on execution |
|
942 |
|
943 @publishedAll |
|
944 @externallyDefinedApi |
|
945 */ |
|
946 |
|
947 /** @def S_ISGID |
|
948 |
|
949 set group id on execution |
|
950 |
|
951 @publishedAll |
|
952 @externallyDefinedApi |
|
953 */ |
|
954 |
|
955 /** @def S_IRWXG |
|
956 |
|
957 RWX mask for group |
|
958 |
|
959 @publishedAll |
|
960 @externallyDefinedApi |
|
961 */ |
|
962 |
|
963 /** @def S_IRGRP |
|
964 |
|
965 R for group |
|
966 |
|
967 @publishedAll |
|
968 @externallyDefinedApi |
|
969 */ |
|
970 |
|
971 |
|
972 /** @def S_IWGRP |
|
973 |
|
974 W for group |
|
975 |
|
976 @publishedAll |
|
977 @externallyDefinedApi |
|
978 */ |
|
979 |
|
980 |
|
981 /** @def S_IXGRP |
|
982 |
|
983 X for group |
|
984 |
|
985 @publishedAll |
|
986 @externallyDefinedApi |
|
987 */ |
|
988 |
|
989 /** @def S_IRWXO |
|
990 |
|
991 RWX mask for other |
|
992 |
|
993 @publishedAll |
|
994 @externallyDefinedApi |
|
995 */ |
|
996 |
|
997 |
|
998 /** @def S_IROTH |
|
999 |
|
1000 R for other |
|
1001 |
|
1002 @publishedAll |
|
1003 @externallyDefinedApi |
|
1004 */ |
|
1005 |
|
1006 |
|
1007 /** @def S_IWOTH |
|
1008 |
|
1009 W for other |
|
1010 |
|
1011 @publishedAll |
|
1012 @externallyDefinedApi |
|
1013 */ |
|
1014 |
|
1015 |
|
1016 /** @def S_IXOTH |
|
1017 |
|
1018 X for other |
|
1019 |
|
1020 @publishedAll |
|
1021 @externallyDefinedApi |
|
1022 */ |
|
1023 |
|
1024 /** @def S_ISVTX |
|
1025 |
|
1026 save swapped text even after use |
|
1027 |
|
1028 @publishedAll |
|
1029 @externallyDefinedApi |
|
1030 */ |
|
1031 |
|
1032 |
|
1033 |
|
1034 |