diff options
Diffstat (limited to 'src/unistd/isatty.c')
-rw-r--r-- | src/unistd/isatty.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/unistd/isatty.c b/src/unistd/isatty.c index c8badaf5..75a9c186 100644 --- a/src/unistd/isatty.c +++ b/src/unistd/isatty.c @@ -1,9 +1,13 @@ #include <unistd.h> +#include <errno.h> #include <sys/ioctl.h> #include "syscall.h" int isatty(int fd) { struct winsize wsz; - return !__syscall(SYS_ioctl, fd, TIOCGWINSZ, &wsz); + unsigned long r = syscall(SYS_ioctl, fd, TIOCGWINSZ, &wsz); + if (r == 0) return 1; + if (errno != EBADF) errno = ENOTTY; + return 0; } |