Basics
Guides
API Reference
Basics
Guides
API Reference
[39:7] extends: object
The GIOChannel data type aims to provide a portable method for using file
descriptors, pipes, and sockets, and integrating them into the main event
loop (see [struct@GLib.MainContext]). Currently, full support is available on
UNIX platforms; support for Windows is only partially complete. To create a
new GIOChannel on UNIX systems use [ctor@GLib.IOChannel.unix_new]. This
works for plain file descriptors, pipes and sockets. Alternatively, a channel
can be created for a file in a system independent manner using
[ctor@GLib.IOChannel.new_file]. Once a GIOChannel has been created, it can
be used in a generic manner with the functions
[method@GLib.IOChannel.read_chars], [method@GLib.IOChannel.write_chars],
[method@GLib.IOChannel.seek_position], and [method@GLib.IOChannel.shutdown].
To add a GIOChannel to the main event loop, use [func@GLib.io_add_watch] or
[func@GLib.io_add_watch_full]. Here you specify which events you are
interested in on the GIOChannel, and provide a function to be called
whenever these events occur. GIOChannel instances are created with an
initial reference count of 1. [method@GLib.IOChannel.ref] and
[method@GLib.IOChannel.unref] can be used to increment or decrement the
reference count respectively. When the reference count falls to 0, the
GIOChannel is freed. (Though it isn’t closed automatically, unless it was
created using [ctor@GLib.IOChannel.new_file].) Using [func@GLib.io_add_watch]
or [func@GLib.io_add_watch_full] increments a channel’s reference count. The
new functions [method@GLib.IOChannel.read_chars],
[method@GLib.IOChannel.read_line], [method@GLib.IOChannel.read_line_string],
[method@GLib.IOChannel.read_to_end], [method@GLib.IOChannel.write_chars],
[method@GLib.IOChannel.seek_position], and [method@GLib.IOChannel.flush]
should not be mixed with the deprecated functions
[method@GLib.IOChannel.read], [method@GLib.IOChannel.write], and
[method@GLib.IOChannel.seek] on the same channel.
IOChannel (Handle = null)
Creates a new
IOChannelby wrapping a native handle or another wrapper.
Handle is the native handle or another wrapper whose handle to adopt.toNativeHandle (Source)
Normalizes a constructor argument into a raw pointer carrier. Accepts a raw NativeHandle, a raw NativeBuffer returned from
fn.call(...), another generated wrapper exposinghandle(), or null. Returns null when the argument carries no pointer.
Source is the raw handle, raw buffer, wrapper, or null.A raw pointer carrier or null when no pointer is present.getLib ()
Returns the opened native library for this generated wrapper.
The opened native library.handle ()
Returns the wrapped NativeHandle.
The wrapped NativeHandle.isNull ()
Returns true when the wrapped handle is null.
A bool.describe ()
Returns a small string for debugging generated wrappers.
A string.
Aussom
Write once. Embed everywhere.
Copyright 2026 Austin Lehman. All rights reserved.