diff --git a/src/node.cc b/src/node.cc index 321c7088ac07e5..ca3b9dea576e15 100644 --- a/src/node.cc +++ b/src/node.cc @@ -97,6 +97,9 @@ #include // STDIN_FILENO, STDERR_FILENO #endif +#ifdef __PASE__ +#include // ioctl +#endif // ========== global C++ headers ========== #include @@ -521,7 +524,14 @@ inline void PlatformInit() { while (s.flags == -1 && errno == EINTR); // NOLINT CHECK_NE(s.flags, -1); +#ifdef __PASE__ + // On IBMi PASE isatty() always returns true for stdin, stdout and stderr. + // Use ioctl() instead to identify whether it's actually a TTY. + if (ioctl(fd, TXISATTY + 0x81, nullptr) == -1 && errno == ENOTTY) + continue; +#else if (!isatty(fd)) continue; +#endif s.isatty = true; do