问题标签 [glib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - g_slice_new 不接受我的结构类型
这就是我构建它的方式:gcc pkg-config --cflags --libs gtk+-2.0
-o spawn spawn_with_pipes.c
在下面的示例片段中,我收到一个错误:“数据之前的语法错误 - 它指的是 data= g_slice_new(Data);
windows - 如何通过 MinGW 编译和使用 GLib
我想在 Windows 环境中使用Gnome GLib,使用免费的 MinGW 编译器在 C 中开发。问题是,我完全不知道如何编译这个库。请你们中的任何人解释一下完成此操作需要哪些工具以及需要遵循哪些说明?
c - C/Glib 内存管理 {no dangling reference > 为什么!??}
我有一个程序调用带有未定义参数的函数,如下所示:
请注意,“”之间的 args 是字符串,因此,在 function_name 中:
因此,如果 data 指向 va_list 中的参数,则当函数返回时,从理论上讲,指向的数据将变为无效,并且在 garray 中也是如此。
(导致悬空引用,因为数据指针指向未保留更多的内存地址)。
但它似乎没有发生,程序运行良好。为什么?并且,在 C 中,传递给函数的参数存储在堆栈中,那么,堆栈中的数据点确实是内存吗?
非常感谢。
c - 如何创建不区分大小写的 Glib 哈希表?
有没有什么简单的方法可以创建一个不区分大小写的(字符串->字符串)Glib 哈希表?
结果应该符合这个:
我认为问题仅在于哈希函数和比较函数的定义。但是,我不知道应该使用哪些功能。
c++ - 我找不到 g_io_channel_win32_make_pollfd 的任何文档
是否有可用的文档g_io_channel_win32_make_pollfd
?
我想使用此函数在 Windows 上为 IPC 在主线程和单独线程之间创建 FD。
这里只是简单提及,并没有真正解释如何使用它。
c - 调用者应该释放的 C/Glib 字符串
我正在使用 glib,
它有很多返回字符串的函数,这些函数应该自己释放。
我可以将这些功能传递给其他功能吗?
示例: function1返回一个必须为调用者释放的字符串。 function2返回一个指向必须释放的字符串的指针。
我应该如何释放从 function1 返回的字符串?这是必要的吗?
非常感谢,
对不起我的英语
glib - glib 错误和警告中的数字是多少?
myapp后面的数字是什么意思?它不对应于任何源代码行,其十六进制或二进制解释也不对应于二进制文件中的相关位置。这个数字总是让我感到困惑,并且查看 GLib 源代码,它似乎应该是一个行号。这个数字是什么意思,或者它应该是什么意思?
ubuntu - 在 ubuntu 9.04 上构建 webkit
我已经从他们的 svn 服务器检查了 webkit 源代码,
当我发出 ./autogen 时,它给了我以下错误,
检查 GLIB... 配置:错误:未满足包要求(glib-2.0 >= 2.21.3 gobject-2.0 >= 2.0 gthread-2.0 >= 2.0):
请求 'glib-2.0 >= 2.21.3' 但 GLib 的版本是 2.20.1
我搜索了谷歌,只是找不到任何关于如何将我的 glib 升级到 2.21.3 的信息。
python - gobject io 监控 + 非阻塞读取
我io_add_watch
在 python 中使用监视器时遇到了问题(通过 gobject)。我想在每次通知后对整个缓冲区进行非阻塞读取。这是代码(稍微缩短了一点):
这是诀窍 - 当我在没有激活调试输出的情况下运行程序时,我没有got_message
接到电话。当我先向stderr写很多东西时,问题就消失了。如果除了这段代码中可见的打印之外我不写任何东西,我就不会收到 stdin 消息信号。另一个有趣的事情是,当我尝试在启用了 stderr 调试但通过strace
(检查是否有任何我错过的 fcntl / ioctl 调用)的情况下运行相同的应用程序时,问题再次出现。
简而言之:如果我先在没有 strace 的情况下向 stderr 写了很多东西,那就io_watch
可以了。如果我用 strace 写了很多,或者根本不写都io_watch
行不通。
“其他一些初始化”部分需要一些时间,所以如果我在看到“钩子 2”输出之前输入一些文本,然后在“就绪”之后按“ctrl+c”,则get_message
调用回调,但读取调用会抛出 EAGAIN,所以缓冲区似乎是空的。
与标准输入相关的 strace 日志:
有人对这里发生的事情有一些想法吗?
编辑:另一个线索。我试图重构应用程序以在不同的线程中进行读取并通过管道将其传回。它“有点”有效:
令人惊讶的是,如果我只是将相同的文本放入新管道中,一切都会开始工作。问题是:
- 第一行根本没有“注意到” - 我只得到第二行和以下行
- 丑陋
也许这会给其他人一个关于为什么会发生这种情况的线索?