gpt4 book ai didi

linux - zenity 抛出 glibc 错误

转载 作者:太空宇宙 更新时间:2023-11-04 11:31:47 24 4
gpt4 key购买 nike

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

for i in $(seq 1 10);做 echo $i;完成 | zenity --list --column ="数字"

但在命令行上这有效,但抛出以下警告:

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

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

谁能告诉我这个警告意味着什么?

最佳答案

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

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

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

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

关于linux - zenity 抛出 glibc 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10879942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com