### Class

# GioUnix InputStream

#### Description [src]

    class GioUnix.InputStream : Gio.InputStream
      implements Gio.PollableInputStream, GioUnix.FileDescriptorBased {
      /* No available fields */
    }

`GUnixInputStream` implements `GInputStream` for reading from a UNIX file descriptor, including asynchronous operations. (If the file descriptor refers to a socket or pipe, this will use `poll()` to do asynchronous I/O. If it refers to a regular file, it will fall back to doing asynchronous I/O in another thread.)

Note that `<gio/gunixinputstream.h>` belongs to the UNIX-specific GIO interfaces, thus you have to use the `gio-unix-2.0.pc` pkg-config file or the `GioUnix-2.0` GIR namespace when using it.

#### Ancestors

- GInputStream
- GObject

#### Implements

- GPollableInputStream
- GFileDescriptorBased

#### Constructors

###### g_unix_input_stream_new

Creates a new `GUnixInputStream` for the given `fd`.

#### Functions

###### g_unix_input_stream_get_close_fd

Returns whether the file descriptor of `stream` will be closed when the stream is closed.

since: 2.20

###### g_unix_input_stream_get_fd

Return the UNIX file descriptor that the stream reads from.

since: 2.20

###### g_unix_input_stream_set_close_fd

Sets whether the file descriptor of `stream` shall be closed when the stream is closed.

since: 2.20

#### Instance methods

##### Methods inherited from GInputStream (19)

###### g_input_stream_clear_pending

Clears the pending flag on `stream`.

###### g_input_stream_close

Closes the stream, releasing resources related to it.

###### g_input_stream_close_async

Requests an asynchronous closes of the stream, releasing resources related to it. When the operation is finished `callback` will be called. You can then call `g_input_stream_close_finish()` to get the result of the operation.

###### g_input_stream_close_finish

Finishes closing a stream asynchronously, started from g_input_stream_close_async().

###### g_input_stream_has_pending

Checks if an input stream has pending actions.

###### g_input_stream_is_closed

Checks if an input stream is closed.

###### g_input_stream_read

Tries to read `count` bytes from the stream into the buffer starting at `buffer`. Will block during this read.

###### g_input_stream_read_all

Tries to read `count` bytes from the stream into the buffer starting at `buffer`. Will block during this read.

###### g_input_stream_read_all_async

Request an asynchronous read of `count` bytes from the stream into the buffer starting at `buffer`.

###### g_input_stream_read_all_finish

Finishes an asynchronous stream read operation started with `g_input_stream_read_all_async()`.

###### g_input_stream_read_async

Request an asynchronous read of `count` bytes from the stream into the buffer starting at `buffer`. When the operation is finished `callback` will be called. You can then call `g_input_stream_read_finish()` to get the result of the operation.

###### g_input_stream_read_bytes

Like g_input_stream_read(), this tries to read `count` bytes from the stream in a blocking fashion. However, rather than reading into a user-supplied buffer, this will create a new `GBytes` containing the data that was read. This may be easier to use from language bindings.

###### g_input_stream_read_bytes_async

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.

###### g_input_stream_read_bytes_finish

Finishes an asynchronous stream read-into-`GBytes` operation.

###### g_input_stream_read_finish

Finishes an asynchronous stream read operation.

###### g_input_stream_set_pending

Sets `stream` to have actions pending. If the pending flag is already set or `stream` is closed, it will return `FALSE` and set `error`.

###### g_input_stream_skip

Tries to skip `count` bytes from the stream. Will block during the operation.

###### g_input_stream_skip_async

Request an asynchronous skip of `count` bytes from the stream. When the operation is finished `callback` will be called. You can then call `g_input_stream_skip_finish()` to get the result of the operation.

###### g_input_stream_skip_finish

Finishes a stream skip operation.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from GPollableInputStream (4)

###### g_pollable_input_stream_can_poll

Checks if `stream` is actually pollable. Some classes may implement `GPollableInputStream` but have only certain instances of that class be pollable. If this method returns `FALSE`, then the behavior of other `GPollableInputStream` methods is undefined.

###### g_pollable_input_stream_create_source

Creates a `GSource` that triggers when `stream` can be read, or `cancellable` is triggered or an error occurs. The callback on the source is of the `GPollableSourceFunc` type.

###### g_pollable_input_stream_is_readable

Checks if `stream` can be read.

###### g_pollable_input_stream_read_nonblocking

Attempts to read up to `count` bytes from `stream` into `buffer`, as with g_input_stream_read(). If `stream` is not currently readable, this will immediately return `G_IO_ERROR_WOULD_BLOCK`, and you can use `g_pollable_input_stream_create_source()` to create a `GSource` that will be triggered when `stream` is readable.

#### Properties

###### GioUnix.InputStream:close-fd

Whether to close the file descriptor when the stream is closed.

since: 2.20

###### GioUnix.InputStream:fd

The file descriptor that the stream reads from.

since: 2.20

#### Signals

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct GioUnixInputStreamClass {
      GInputStreamClass parent_class;
      void (* _g_reserved1) (
    void
      );
      void (* _g_reserved2) (
    void
      );
      void (* _g_reserved3) (
    void
      );
      void (* _g_reserved4) (
    void
      );
      void (* _g_reserved5) (
    void
      );

    }

No description available.

###### Class members

`parent_class: GInputStreamClass`

  No description available.

`_g_reserved1: void (* _g_reserved1) ( void )`

  No description available.

`_g_reserved2: void (* _g_reserved2) ( void )`

  No description available.

`_g_reserved3: void (* _g_reserved3) ( void )`

  No description available.

`_g_reserved4: void (* _g_reserved4) ( void )`

  No description available.

`_g_reserved5: void (* _g_reserved5) ( void )`

  No description available.