Correct, and with Go’s lightweight IO, the timeouts are cheap, so a simple read with short timeouts is all you need to flush.
> On May 4, 2019, at 3:32 PM, roger peppe <rogpe...@gmail.com> wrote: > > > >> On Sat, 4 May 2019, 04:33 Robert Engels, <reng...@ix.netcom.com> wrote: >> Since people keep referring to “flush”. I’ll chime in again. Thus is not the >> correct way to do this, as many routines buffer input. Flushing the driver >> does nothing to characters already in the buffer. Flushing the driver is >> only appropriate if also doing direct reads from the driver - if you are >> using any stdlib based streams this will probably be a problem. > > > Unlike several other languages, Go does not automatically apply buffering to > stdio streams unless you explicitly add it (for example using the bufio > package). >> >>> On May 3, 2019, at 8:40 PM, Matt Harden <matt.har...@gmail.com> wrote: >>> >>> You may want http://godoc/github.com/pkg/term/termios. It looks like it >>> supports Tcflush on UNIX, including Solaris: >>> https://github.com/pkg/term/blob/master/termios/termios_solaris.go#L63. >>> >>>> On Fri, May 3, 2019 at 9:45 AM gbarr <gmb...@gmail.com> wrote: >>>> For BSD systems I think you need to use TIOCFLUSH instead of TCFLSH >>>> >>>>> On Friday, May 3, 2019 at 1:28:36 PM UTC+1, Steve Mynott wrote: >>>>> I've a terminal app where I read y/n confirm using fmt.Scanln and I'm >>>>> trying to flush the keyboard buffer before this. >>>>> >>>>> On linux (and probably other UNIX systems) I can use >>>>> >>>>> unix.Syscall(unix.SYS_IOCTL, 0, unix.TCFLSH, 0) >>>>> >>>>> but this isn't portable (specifically to macOS which it would be nice to >>>>> support) since on cross compiling I see "undefined: unix.TCFLSH" Maybe >>>>> this is some BSDism? >>>>> >>>>> Rossetta code suggests using a ncurses function from >>>>> https://github.com/rthornton128/goncurses but that seems sort of ugly? >>>>> >>>>> https://rosettacode.org/wiki/Keyboard_input/Flush_the_keyboard_buffer#Go >>>>> >>>>> Is there a simple way which works at least on UNIX and macOS? >>>>> >>>>> -- >>>>> Steve Mynott <steve...@gmail.com> >>>>> cv25519/ECF8B611205B447E091246AF959E3D6197190DD5 >>>> >>>> -- >>>> You received this message because you are subscribed to the Google Groups >>>> "golang-nuts" group. >>>> To unsubscribe from this group and stop receiving emails from it, send an >>>> email to golang-nuts+unsubscr...@googlegroups.com. >>>> For more options, visit https://groups.google.com/d/optout. >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "golang-nuts" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to golang-nuts+unsubscr...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "golang-nuts" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to golang-nuts+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.