Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!sun-barr!decwrl!sgi!davea@quasar.wpd.sgi.com From: davea@quasar.wpd.sgi.com (David B. Anderson) Newsgroups: comp.sys.sgi Subject: Re: use of SGTTY.H and stuff involving IOCTLs Message-ID: <46780@sgi.sgi.com> Date: 21 Dec 89 01:19:15 GMT References: <8912200949.aa18764@VMB.BRL.MIL> Sender: davea@quasar.wpd.sgi.com Reply-To: davea@quasar.UUCP (David B. Anderson) Organization: Silicon Graphics, Inc., Mountain View, CA Lines: 53 In article <8912200949.aa18764@VMB.BRL.MIL> moss@BRL.MIL ("Gary S. Moss", VLD/VMB) writes: >Dave Ciemiewicz has got the right idea, but based on some of my code that >seems to work I would make some changes. I already sent some code to Thomas, >but for the benefit of other readers, take this for what its worth: >< tty_new.c_cc[VMIN] = 1; /* MIN characters */ >< tty_new.c_cc[VTIME] = 1; /* TIME in tenths of seconds */ >I set the VTIME field to 0, not sure if it matters, though termio(7) >on my 4D says to set them both to one to simulate BSD RAW mode. From the post-release-3.2 termio man page: (see also POSIX 1003.1 7.1.1.7) If MIN and TIME are both greater than 0: In this case, TIME serves as an inter-character timer activated after the first character is received, and reset upon receipt of each character. MIN and TIME interact as follows: As soon as one character is received the inter-character timer is started. If MIN characters are received before the inter-character timer expires the read is satisfied. If the timer expires before MIN characters are received the characters received to that point are returned to the user. A read(2) operation will sleep until the MIN and TIME mechanisms are activated by the receipt of the first character; thus, at least one character must be returned. --------------------- If MIN > 0, TIME = 0: In this case, because TIME = 0, the timer plays no role and only MIN is significant. A read operation is not satisfied until MIN characters are received. --------------------- If MIN = 0, TIME > 0: In this case, because MIN = 0, TIME no longer serves as an inter-character timer, but now serves as a read timer that is activated as soon as the read operation is processed (in canon). A read operation is satisfied as soon as a single character is received or the timer expires, in which case the read operation will not return any characters. --------------------- If MIN = 0, TIME = 0: In this case, return is immediate. If characters are present, they will be returned to the user. Regards, [ David B. Anderson Silicon Graphics (415)335-1548 davea@sgi.com ]