I just noticed that using libuv 1.40.0 built in Linux 5.8.11, if I
create TTY handlers for a FD will prevent the FD to be used by child
processes, similar to what 'uv_disable_stdio_inheritance' does.
The attached code illustrates the behavior. The output is:
```
libuv 1.40.0
failcommand.c:25: uv_tty_init(loop, tty, 0, 0)
failcommand.c:25: uv_tty_init(loop, tty, 1, 0)
failcommand.c:25: uv_tty_init(loop, tty, 2, 0)
failcommand.c:30: system('echo "Hello, world!"') = Inappropriate ioctl
for device
failcommand.c:38: uv_close(tty) /* fd=0 */
failcommand.c:38: uv_close(tty) /* fd=1 */
failcommand.c:38: uv_close(tty) /* fd=2 */
```
Is this expected behavior? Is there a way to use TTY streams for
standard streams (STD{IN,OUT,ERR}) and still be able to create
processes that can use them?
Thanks in advance.
P.S.: I noticed some sections missing from the API documentation, but
which are present in the 'Show Source' link of the page. For instance,
'uv_tty_mode_t' and 'uv_tty_vtermstate_t' descriptions are missing in
http://docs.libuv.org/en/v1.x/tty.html. Should I report this
somewhere?
--
Renato Maia