GioUnixInputStream

描述 [源代码]

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

GUnixInputStream 实现了从 UNIX 文件描述符读取的功能,支持异步操作。(如果文件描述符是指向套接字或管道,这将会使用 poll() 来进行异步 I/O。如果它是指向普通文件,它将回退到在另一个线程中进行异步 I/O。)

注意,<gio/gunixinputstream.h> 属于特定于 UNIX 的 GIO 接口,因此你必须在使用它时使用 gio-unix-2.0.pc pkg-config 文件或 GioUnix-2.0 GIR 命名空间。

构造函数

g_unix_input_stream_new

为给定的 fd 创建一个新的 GUnixInputStream

函数

g_unix_input_stream_get_close_fd

返回流 stream 关闭时文件描述符是否会被关闭。

自:2.20

g_unix_input_stream_get_fd

返回流从其读取的 UNIX 文件描述符。

自:2.20

g_unix_input_stream_set_close_fd

设置流关闭时是否应该关闭 stream 的文件描述符。

自:2.20

实例方法

GInputStream 继承的方法(19个)
g_input_stream_clear_pending

清除 stream 上的挂起标志。

g_input_stream_close

关闭流,释放相关资源。

g_input_stream_close_async

请求异步关闭流,释放相关资源。当操作完成后,将调用 callback。然后你可以调用 g_input_stream_close_finish() 来获取操作的结果。

g_input_stream_close_finish

完成从 g_input_stream_close_async() 开始的流的异步关闭。

g_input_stream_has_pending

检查输入流是否有挂起操作。

g_input_stream_is_closed

检查输入流是否已关闭。

g_input_stream_read

尝试从流中读取 count 字节到从 buffer 开始的缓冲区。在这个读取期间将会阻塞。

g_input_stream_read_all

尝试从流中读取 count 字节到从 buffer 开始的缓冲区。在这个读取期间将会阻塞。

g_input_stream_read_all_async

请求异步读取 count 字节到从 buffer 开始的流缓冲区。

g_input_stream_read_all_finish

完成从 g_input_stream_read_all_async() 开始的异步流读取操作。

g_input_stream_read_async

请求异步读取 count 字节到从 buffer 开始的流缓冲区。当操作完成后,将调用 callback。然后你可以调用 g_input_stream_read_finish() 来获取操作的结果。

g_input_stream_read_bytes

类似于g_input_stream_read(),这个函数尝试以阻塞方式从流中读取count个字节。然而,与读取到用户提供的缓冲区不同,这个函数会创建一个新的GBytes对象,其中包含读取的数据。这可能会让语言绑定更容易使用。

g_input_stream_read_bytes_async

请求从流中异步读取count个字节到新的GBytes。当操作完成时,将调用callback。然后您可以调用g_input_stream_read_bytes_finish()以获取操作的结果。

g_input_stream_read_bytes_finish

完成异步流读取到GBytes的操作。

g_input_stream_read_finish

完成异步流读取操作。

g_input_stream_set_pending

stream设置为有挂起的操作。如果挂起标志已设置或stream已关闭,它将返回FALSE并设置error

g_input_stream_skip

尝试从流中跳过count个字节。在操作过程中会阻塞。

g_input_stream_skip_async

请求从流中异步跳过count个字节。当操作完成时,将调用callback。然后您可以调用g_input_stream_skip_finish()以获取操作的结果。

g_input_stream_skip_finish

完成流跳过操作。

GObject继承的方法(43个)

请参阅GObject以获取方法列表的完整列表。

GPollableInputStream继承的方法(4个)
g_pollable_input_stream_can_poll

检查stream是否实际上是可轮询的。某些类可能实现了GPollableInputStream,但仅有该类的一些实例是可轮询的。如果此方法返回FALSE,则其他GPollableInputStream方法的行为是未定义的。

g_pollable_input_stream_create_source

创建一个在stream可读、cancellable被触发或发生错误时触发的GSource。该源的回调是GPollableSourceFunc类型。

g_pollable_input_stream_is_readable

检查stream是否可读。

g_pollable_input_stream_read_nonblocking

尝试以与g_input_stream_read()相同的方式读取最多count字节到buffer中。如果stream当前不可读,此函数将立即返回G_IO_ERROR_WOULD_BLOCK,您可以使用g_pollable_input_stream_create_source()创建一个当stream可读时将触发的GSource

属性

GioUnix.InputStream:close-fd

在关闭流时是否关闭文件描述符。

自:2.20

GioUnix.InputStream:fd

流从中读取的文件描述符。

自:2.20

信号

GObject继承的信号(1个)
GObject::notify

当使用g_object_set_property()、g_object_set()等设置对象属性值时,此信号在对象上发出。

类结构

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
  );
  
}

无描述可用。

类成员
parent_class: GInputStreamClass

无描述可用。

_g_reserved1: void (* _g_reserved1) ( void )

无描述可用。

_g_reserved2: void (* _g_reserved2) ( void )

无描述可用。

_g_reserved3: void (* _g_reserved3) ( void )

无描述可用。

_g_reserved4: void (* _g_reserved4) ( void )

无描述可用。

_g_reserved5: void (* _g_reserved5) ( void )

无描述可用。