Gio.InputStream.read_bytes_async

### Method

# Gio InputStreamread_bytes_async

since: 2.34

#### Declaration [src]

    void
    g_input_stream_read_bytes_async (
      GInputStream* stream,
      gsize count,
      int io_priority,
      GCancellable* cancellable,
      GAsyncReadyCallback callback,
      gpointer user_data
    )

#### Description [src]

Request an asynchronous read of `count` bytes from the stream into a new `GBytes`. When the operation is finished `callback` will be called. You can then call `g_input_stream_read_bytes_finish()` to get the result of the operation.

During an async request no other sync and async calls are allowed on `stream`, and will result in `G_IO_ERROR_PENDING` errors.

A value of `count` larger than `G_MAXSSIZE` will cause a `G_IO_ERROR_INVALID_ARGUMENT` error.

On success, the new `GBytes` will be passed to the callback. It is not an error if this is smaller than the requested size, as it can happen e.g. near the end of a file, but generally we try to read as many bytes as requested. Zero is returned on end of file (or if `count` is zero), but never otherwise.

Any outstanding I/O request with higher priority (lower numerical value) will be executed before an outstanding request with lower priority. Default priority is `G_PRIORITY_DEFAULT`.

Available since: 2.34

This method completes asynchronously. Use `g_input_stream_read_bytes_finish()` inside the `GAsyncReadyCallback` to obtain the result of the operation.

#### Parameters

`count`

  Type: `gsize`

  The number of bytes that will be read from the stream.

`io_priority`

  Type: `int`

  The I/O priority of the request.

`cancellable`

  Type: `GCancellable`

  Optional `GCancellable` object, `NULL` to ignore.

  The argument can be `NULL`.
  The data is owned by the caller of the method.

`callback`

  Type: `GAsyncReadyCallback`

  A `GAsyncReadyCallback` to call when the request is satisfied.

  The argument can be `NULL`.

`user_data`

  Type: `gpointer`

  The data to pass to callback function.

  The argument can be `NULL`.
  The data is owned by the caller of the method.