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
--
You received this message because you are subscribed to the Google Groups
"libuv" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/libuv/CAB-PuDpZaXhZr7QqsxTBt3DAgwOr%3DCnD2F2aUbg%3DcC%3DUg4qLUA%40mail.gmail.com.