Use an UnsafePointer for the read() buffer, so that we can easily pass it around by ref.