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 ); |
source 和 condition 就是前述的參數。
1 則留言