xref: /PHP-7.4/ext/standard/php_filestat.h (revision 0cf7de1c)
1 /*
2    +----------------------------------------------------------------------+
3    | PHP Version 7                                                        |
4    +----------------------------------------------------------------------+
5    | Copyright (c) The PHP Group                                          |
6    +----------------------------------------------------------------------+
7    | This source file is subject to version 3.01 of the PHP license,      |
8    | that is bundled with this package in the file LICENSE, and is        |
9    | available through the world-wide-web at the following url:           |
10    | http://www.php.net/license/3_01.txt                                  |
11    | If you did not receive a copy of the PHP license and are unable to   |
12    | obtain it through the world-wide-web, please send a note to          |
13    | license@php.net so we can mail you a copy immediately.               |
14    +----------------------------------------------------------------------+
15    | Author:  Jim Winstead <jimw@php.net>                                 |
16    +----------------------------------------------------------------------+
17 */
18 
19 #ifndef PHP_FILESTAT_H
20 #define PHP_FILESTAT_H
21 
22 PHP_RINIT_FUNCTION(filestat);
23 PHP_RSHUTDOWN_FUNCTION(filestat);
24 
25 PHP_FUNCTION(realpath_cache_size);
26 PHP_FUNCTION(realpath_cache_get);
27 PHP_FUNCTION(clearstatcache);
28 PHP_FUNCTION(fileatime);
29 PHP_FUNCTION(filectime);
30 PHP_FUNCTION(filegroup);
31 PHP_FUNCTION(fileinode);
32 PHP_FUNCTION(filemtime);
33 PHP_FUNCTION(fileowner);
34 PHP_FUNCTION(fileperms);
35 PHP_FUNCTION(filesize);
36 PHP_FUNCTION(filetype);
37 PHP_FUNCTION(is_writable);
38 PHP_FUNCTION(is_readable);
39 PHP_FUNCTION(is_executable);
40 PHP_FUNCTION(is_file);
41 PHP_FUNCTION(is_dir);
42 PHP_FUNCTION(is_link);
43 PHP_FUNCTION(file_exists);
44 PHP_NAMED_FUNCTION(php_if_stat);
45 PHP_NAMED_FUNCTION(php_if_lstat);
46 PHP_FUNCTION(disk_total_space);
47 PHP_FUNCTION(disk_free_space);
48 PHP_FUNCTION(chown);
49 PHP_FUNCTION(chgrp);
50 #if HAVE_LCHOWN
51 PHP_FUNCTION(lchown);
52 #endif
53 #if HAVE_LCHOWN
54 PHP_FUNCTION(lchgrp);
55 #endif
56 PHP_FUNCTION(chmod);
57 #if HAVE_UTIME
58 PHP_FUNCTION(touch);
59 #endif
60 PHP_FUNCTION(clearstatcache);
61 
62 #ifdef PHP_WIN32
63 #define S_IRUSR S_IREAD
64 #define S_IWUSR S_IWRITE
65 #define S_IXUSR S_IEXEC
66 #define S_IRGRP S_IREAD
67 #define S_IWGRP S_IWRITE
68 #define S_IXGRP S_IEXEC
69 #define S_IROTH S_IREAD
70 #define S_IWOTH S_IWRITE
71 #define S_IXOTH S_IEXEC
72 
73 #undef getgid
74 #define getgroups(a, b) 0
75 #define getgid() 1
76 #define getuid() 1
77 #endif
78 
79 /* Compatibility. */
80 typedef size_t php_stat_len;
81 
82 PHPAPI void php_clear_stat_cache(zend_bool clear_realpath_cache, const char *filename, size_t filename_len);
83 PHPAPI void php_stat(const char *filename, size_t filename_length, int type, zval *return_value);
84 
85 /* Switches for various filestat functions: */
86 #define FS_PERMS    0
87 #define FS_INODE    1
88 #define FS_SIZE     2
89 #define FS_OWNER    3
90 #define FS_GROUP    4
91 #define FS_ATIME    5
92 #define FS_MTIME    6
93 #define FS_CTIME    7
94 #define FS_TYPE     8
95 #define FS_IS_W     9
96 #define FS_IS_R    10
97 #define FS_IS_X    11
98 #define FS_IS_FILE 12
99 #define FS_IS_DIR  13
100 #define FS_IS_LINK 14
101 #define FS_EXISTS  15
102 #define FS_LSTAT   16
103 #define FS_STAT    17
104 
105 #endif /* PHP_FILESTAT_H */
106