GTK+ 2.0 教学-监控IO

GDK ( GTK 下的函式库) 的一个极好的特性是能让它检查档案描述器 (如 open(2) 或 socket(2) 传回的) 上的资料。这对网络应用程式尤其有用。这个函式:

gint gdk_input_add( gint              source,
                    GdkInputCondition condition,
                    GdkInputFunction  function,
                    gpointer          data );

第一个参数是你想监控的档案描述器。第二个参数指定你想让 GDK 寻找什么。它可以是:

  • GDK_INPUT_READ — 当档案描述器有资料可供读取时呼叫你的函式。
  • GDK_INPUT_WRITE — 当档案描述器做好写的准备时呼叫你的函式。

我确信你已经看出来了,第三个参数是当满足上述条件时你想要呼叫的函式,第四个参数是传递给该函式的参数。

传回值是一个标签,该标签可用于让 GDK 停止对档案描述器的监控,用函式:

void gdk_input_remove( gint tag );

回呼函式应该宣告为:

void input_callback( gpointer          data,
                     gint              source,
                     GdkInputCondition condition );

sourcecondition 就是前述的参数。

Comments are closed.