IoChannel
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.
Skipped during bindings generation
parameter
length
: length: Out parameter is not supportedparameter
bytes_read
: Unsupported pointer to primitive typeparameter
buf
: buf: Out parameter is not supportedparameter
str_return
: str_return: Out parameter is not supportedparameter
terminator_pos
: Unsupported pointer to primitive typeparameter
str_return
: str_return: Out parameter is not supportedparameter
thechar
: thechar: Out parameter is not supportedparameter
bytes_written
: Unsupported pointer to primitive typeparameter
buf
: Array parameter of type guint8 is not supported
Constructors
Functions
This function returns a #GIOCondition depending on whether there is data to be read/space to write data in the internal buffers in the #GIOChannel. Only the flags %G_IO_IN and %G_IO_OUT may be set.
Returns whether @channel is buffered.
Gets the buffer size.
Returns whether the file/socket/whatever associated with @channel will be closed when @channel receives its final unref and is destroyed. The default value of this is true for channels created by g_io_channel_new_file (), and false for all other channels.
Gets the encoding for the input/output of the channel. The internal encoding is always UTF-8. The encoding null makes the channel safe for binary data.
Replacement for g_io_channel_seek() with the new API.
The buffering state can only be set if the channel's encoding is null. For any other encoding, the channel must be buffered.
Sets the buffer size.
Whether to close the channel on the final unref of the #GIOChannel data structure. The default value of this is true for channels created by g_io_channel_new_file (), and false for all other channels.
Sets the encoding for the input/output of the channel. The internal encoding is always UTF-8. The default encoding for the external file is UTF-8.
This sets the string that #GIOChannel uses to determine where in the file a line break occurs.
Writes a Unicode character to @channel. This function cannot be called on a channel with null encoding.