@@ -4,12 +4,14 @@ posix_mknodat/posix_mkfifoat support
4
4
posix
5
5
--SKIPIF--
6
6
<?php
7
- if (!function_exists ('posix_mknodat ' )) die ('skip posix_mknodat() not found ' );
7
+ // usually, mkfifoat is implemented with mknodat
8
+ if (!function_exists ('posix_mknodat ' ) || !function_exists ('posix_mkfifoat ' )) die ('skip posix_mknodat()/posix_mkfifoat not found ' );
8
9
?>
9
10
--FILE--
10
11
<?php
11
12
12
13
$ fd = fopen (__DIR__ , "r " );
14
+ var_dump (posix_mknodat ($ fd , 'dev ' , POSIX_S_IFIFO | 0666 , 1 , 0 ));
13
15
var_dump (posix_mknodat ($ fd , '' , POSIX_S_IFBLK | 0777 , 1 , 0 ));
14
16
var_dump (posix_mknodat ($ fd , __DIR__ . '' , POSIX_S_IFBLK | 0777 , 1 , 0 ));
15
17
try {
@@ -22,14 +24,20 @@ var_dump(posix_mkfifoat($fd, __DIR__ . '', POSIX_S_IFBLK | 0777));
22
24
try {
23
25
posix_mkfifoat (new stdClass (), '/dev/ ' , POSIX_S_IFBLK | 0777 );
24
26
} catch (TypeError $ e ) {
25
- echo $ e ->getMessage ();
27
+ echo $ e ->getMessage () . PHP_EOL ;
26
28
}
29
+ @unlink (__DIR__ . '/dev ' );
30
+ var_dump (posix_mkfifoat ($ fd , 'dev ' , POSIX_S_IFIFO | 0666 ));
27
31
fclose ($ fd );
32
+ @unlink (__DIR__ . '/dev ' );
28
33
?>
29
34
--EXPECT--
35
+ bool(true)
30
36
bool(false)
31
37
bool(false)
32
38
posix_mknodat(): Argument #4 ($major) cannot be 0 for the POSIX_S_IFCHR and POSIX_S_IFBLK modes
33
39
bool(false)
34
40
bool(false)
35
41
posix_mkfifoat(): Argument #1 ($file_descriptor) must be of type int|resource, stdClass given
42
+ bool(true)
43
+
0 commit comments