このエラーは、stdin を 2 回閉じようとした場合に発生します。1 回目はすべてのデータがシーケンスから読み取られた後、2 回目はちょうど終了しようとしているときに発生します。これは zenity ソースにあります。これは純粋に表面的なものであり、安全に無視できます。zenity コードは、その時点で終了する以外には何もしていません。
handlerzenity_tree_handle_stdin
では、ルーチンの終わりに向かって同じチャネルを閉じます (関数とグローバル スコープで同じ名前の変数を使用することによって引き起こされる変数の隠蔽があります)。
if ((condition != G_IO_IN) && (condition != G_IO_IN + G_IO_HUP)) {
g_io_channel_shutdown (channel, TRUE, NULL);
return FALSE;
}
tree.c
プログラムが終了しようとしている 648 行目:
if (channel != NULL)
g_io_channel_shutdown (channel, TRUE, NULL);
これらのコード パスは両方とも同じチャネルを閉じようとするため、警告が発生します。648 行の次は を発行することなので、gtk_main_quit
この警告は無視しても問題ないと思います。