Path: utzoo!attcan!uunet!auspex!guy From: guy@auspex.UUCP (Guy Harris) Newsgroups: comp.unix.wizards Subject: Re: printf, data presentation Message-ID: <845@auspex.UUCP> Date: 14 Jan 89 05:52:00 GMT References: <19@xenlink.UUCP> <8800006@gistdev> <13327@ncoast.UUCP> Reply-To: guy@auspex.UUCP (Guy Harris) Organization: Auspex Systems, Santa Clara Lines: 34 >At least *some* System V's will treat VMIN == 0, VTIME == 0 as the inkey() >function originally requested. In the code as distributed by AT&T, reads with VMIN == 0, VTIME == 0 are non-blocking reads, and reads with VMIN == 0, VTIME == 10 wait for up to 1 second, or until a character arrives. I would hope *all* System V's work that way, but it's conceivable some are broken.... From the SunOS 4.0 TERMIO(4) (it implements an S5 superset - this part is not a superset, though, S5 does the same stuff): Case C: MIN = 0, TIME > 0 In this case, since MIN = 0, TIME no longer represents an intercharacter timer. It now serves as a read timer that is activated as soon as a read() is done. A read is satisfied as soon as a single character is received or the read timer expires. Note: in this case if the timer expires, no char- acter will be returned. If the timer does not expire, the only way the read can be satisfied is if a character is received. In this case the read will not block indefinitely waiting for a character - if no character is received within TIME*.10 seconds after the read is initiated, the read will return with zero characters. Case D: MIN = 0, TIME = 0 In this case return is immediate. The minimum of either the number of characters requested or the number of characters currently available will be returned without waiting for more characters to be input. >I *hope* that POSIX is dealing with this. POSIX specifies an S5-like tty driver, with S5-style behavior for VMIN and VTIME.