---
title: "CFReadStreamGetBuffer(_:_:_:)"
framework: corefoundation
role: symbol
role_heading: Function
path: "corefoundation/cfreadstreamgetbuffer(_:_:_:)"
---

# CFReadStreamGetBuffer(_:_:_:)

Returns a pointer to a stream’s internal buffer of unread data, if possible.

## Declaration

```swift
func CFReadStreamGetBuffer(_ stream: CFReadStream!, _ maxBytesToRead: CFIndex, _ numBytesRead: UnsafeMutablePointer<CFIndex>!) -> UnsafePointer<UInt8>!
```

## Parameters

- `stream`: The stream to examine.
- `maxBytesToRead`: The maximum number of bytes to read. If greater than 0, maxBytesToRead limits the number of bytes read; if 0 or less, all available bytes are read.
- `numBytesRead`: On return, contains the length of returned buffer. If stream is not open or has encountered an error, numBytesRead is set to -1.

## Return Value

Return Value A pointer to the internal buffer of unread data for stream, if possible; NULL otherwise. The buffer is good only until the next stream operation called on the stream. You should neither change the contents of the returned buffer nor attempt to deallocate the buffer; it is still owned by the stream. The bytes returned in the buffer are considered read from the stream.

## See Also

### Examining Stream Properties

- [CFReadStreamCopyProperty(_:_:)](corefoundation/cfreadstreamcopyproperty(_:_:).md)
- [CFReadStreamCopyError(_:)](corefoundation/cfreadstreamcopyerror(_:).md)
- [CFReadStreamGetError(_:)](corefoundation/cfreadstreamgeterror(_:).md)
- [CFReadStreamGetStatus(_:)](corefoundation/cfreadstreamgetstatus(_:).md)
- [CFReadStreamHasBytesAvailable(_:)](corefoundation/cfreadstreamhasbytesavailable(_:).md)
