首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >zenity抛出滑翔错误

zenity抛出滑翔错误
EN

Stack Overflow用户
提问于 2012-06-04 10:39:58
回答 1查看 722关注 0票数 0

我一直在尝试在shell脚本中使用标准重定向的zenity,比如

在$(seq 1 10)中表示i的;do echo $i;do\ zenity --list -列="Number"

但是,在命令行中,这是可行的,但引发了以下警告:

(zenity:3328):GLib-警告**:无效的文件描述符。

这似乎只有在数据通过管道重定向到Zenity命令时才会发生。

有人能告诉我这个警告意味着什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-05 08:26:01

这个错误是通过尝试关闭stdin两次触发的--一次是在从序列中读取了所有数据之后,第二次是因为它即将退出--这是在zenity源中。它纯粹是表面的,可以被安全地忽略-- zenity代码除了在那一点上退出之外,什么也不做。

在处理程序zenity_tree_handle_stdin中,在例程结束时,它关闭相同的通道(在函数中和全局范围内使用相同的命名变量会导致变量隐藏):

代码语言:javascript
复制
if ((condition != G_IO_IN) && (condition != G_IO_IN + G_IO_HUP)) {
  g_io_channel_shutdown (channel, TRUE, NULL);
  return FALSE;
}

tree.c ~第648行中,程序即将退出:

代码语言:javascript
复制
  if (channel != NULL)
    g_io_channel_shutdown (channel, TRUE, NULL);

这两种代码路径都将尝试关闭相同的通道,从而导致警告。因为第648行之后所做的下一件事是发出一个gtk_main_quit,所以我认为可以安全地忽略这个警告。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10879942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档