Issue #3252 has been reported by tonyc.
----------------------------------------
Bug #3252: tcsetattr/tcgetattr set errno incorrectly on non-TTY
http://bugs.dragonflybsd.org/issues/3252
* Author: tonyc
* Status: New
* Priority: Normal
* Assignee:
* Category:
* Target version:
----------------------------------------
tcsetattr() and tcgetattr() are documented to fail as follows:
Upon successful completion, the functions tcgetattr() and tcsetattr()
return a value of 0. Otherwise, they return -1 and the global variable
errno is set to indicate the error, as follows:
...
[ENOTTY] The file associated with the fd argument to
tcgetattr() or tcsetattr() is not a terminal.
which matches POSIX, but they do not set errno correctly:
$ cc -otcerror tcerror.c
$ ./tcerror
OK: tcgetattr on /dev/null failed as expected
FAIL: tcgetattr on /dev/null set errno incorrectly: Operation not supported by
device
OK: tcsetattr failed as expected
FAIL: tcsetattr failure set errno incorrectly: Operation not supported by device
$ uname -a
DragonFly 5.8-RELEASE DragonFly v5.8.3-RELEASE #10: Thu Sep 24 19:19:45 EDT
2020
[email protected]:/usr/obj/home/justin/release/5_8/sys/X86_64_GENERIC
x86_64
This was discovered while diagnosing perl test failures.
---Files--------------------------------
tcerror.c (1.03 KB)
--
You have received this notification because you have either subscribed to it,
or are involved in it.
To change your notification preferences, please click here:
http://bugs.dragonflybsd.org/my/account