write_linux.go 469 B

1234567891011121314151617181920212223
  1. package door
  2. import (
  3. "fmt"
  4. "syscall"
  5. )
  6. // Write string to client.
  7. func (d *Door) Write(output string) {
  8. if d.Disconnected {
  9. return
  10. }
  11. buffer := []byte(output)
  12. n, err := syscall.Write(d.WRITEFD, buffer)
  13. if err != nil {
  14. fmt.Println("Write error/HANGUP?", n)
  15. d.Disconnected = true
  16. }
  17. // No, this isn't it. The # of bytes in buffer == bytes written.
  18. if n != len(buffer) {
  19. fmt.Printf("Write fail: %d != %d\n", len(buffer), n)
  20. }
  21. }