Tracking issue for missing POSIX APIs
While Redox's aim is not full POSIX compatibility, there are lots of missing APIs that generally only come with benefits.
Non-exhaustive list:
-
wcsrtombs
(#166 (closed)) -
UTIME_OMIT
andUTIME_NOW
(#172 (closed)) -
wait3
(no longer in POSIX?, #170) -
malloc.h
(not in POSIX?, #136) -
towctrans
andwctrans
(#32 (closed)) -
some sys/mman.h
defs (#73) -
some networking constants (#164 (closed)) -
mknod
(#103) -
swprintf
-
swscanf
-
ungetwc
-
vfwprintf
-
vwprintf
-
vswprintf
-
wcsftime
-
wcswcs
-
wcsxfrm
-
wprintf
-
wscanf
-
redox#1461 -
redox#1488 -
redox#1485 -
redox#1483 -
redox#1475 -
redox#1474
Not all POSIX APIs are available as stubs, but those that are, can be found by looking for commented-out #[no_mangle]
, e.g. via rg '^.*//.*#\[no_mangle\]'
.
There are some POSIX requirements that will be much harder to fix. First, the current context=process=thread assumption must be dealt with. Second, POSIX appears to allow all characters but NUL and '/', which conflicts with how schemes work (even returning an error due to lack of support for : in the filesystem, doesn't apply, as it will work but the behavior will be different).
Reference
Almost all POSIX functions are well-documented on the following links:
Edited by Ribbon