On Fri, Sep 23, 2022 at 01:39:16PM +0200, Martin Husemann wrote: > > Then, shouldn't the open(2) (and posix_openpt(3)) at least fail with > > EINVAL or something if other flags are specified? > > The man page says: > > Note that unlike implementations on some other operating systems, > posix_openpt() does not return EINVAL if the value of oflag would be > deemed invalid, instead it is simply ignored. This means it is not > possible to dynamically test which open(2) flags are possible to set, > and > apply a fallback if EINVAL is received.
That is, however, kind of a feeble excuse :-) While my inclination would be to make it work, until someone wants to figure out how to do that it seems straightforward to make O_NONBLOCK fail: Index: tty_ptm.c =================================================================== RCS file: /cvsroot/src/sys/kern/tty_ptm.c,v retrieving revision 1.43 diff -u -p -r1.43 tty_ptm.c --- tty_ptm.c 29 Jun 2021 22:40:53 -0000 1.43 +++ tty_ptm.c 23 Sep 2022 20:12:07 -0000 @@ -338,6 +338,10 @@ ptmopen(dev_t dev, int flag, int mode, s dev_t ttydev; struct mount *mp; + if (flag & O_NONBLOCK) { + return EINVAL; + } + switch(minor(dev)) { case 0: /* /dev/ptmx */ case 2: /* /emul/linux/dev/ptmx */ -- David A. Holland dholl...@netbsd.org