luit: Cygwin compatibility
ydroneaud at mandriva.com
Wed Oct 7 02:16:14 PDT 2009
Le mardi 06 octobre 2009 à 17:38 +0200, Mark Kettenis a écrit :
> > From: Adam Jackson <ajax at nwnk.net>
> > Date: Tue, 06 Oct 2009 11:21:13 -0400
> > On Mon, 2009-10-05 at 19:08 -0500, Yaakov (Cygwin/X) wrote:
> > > Cygwin has O_NOCTTY but no TIOCSCTTY, so the tty is never made=20
> > > controlling. This raises two questions:
> > >=20
> > > 1) What is the point of O_NOCTTY if TIOCSCTTY is called right afterwards?
> > Hah! Can't think of one.
> But I can. The TIOCSCTTY ioctl will fail if the process already has a
> controlling tty (even if the current controlling tty is the same as
> the tty you want to make controlling). So you need to open the tty
> with O_NOCTTY to make sure this doesn't happen.
You could check controlling tty using this trick:
static const char *ctty = "/dev/tty";
#define get_ctty() ctty
#define get_ctty() ctermid(NULL) /* under GNU system, ctermid() always
return "/dev/tty" */
/* try to open /dev/tty, if an error occur, there's no controlling tty
fd = open(get_ctty(), O_RDWR); /* if we can open this,
fbgetty has a controlling terminal
if (fd != -1)
But I don't know if it's working under cygwin.
More information about the xorg-devel