问题描述
我正在尝试为 Ubuntu 制作一个 GUI 包管理器,类似于使用 libapt 的 Synaptic,但遇到了一些与从 pkgCache 获取信息有关的奇怪错误。特别是在使用 pkgIterator 并尝试访问 FullName() 和 Name() 属性时,但其他如 Section() 属性很好(您可以查看文档 here)。
看看 Synaptic 的做法,它非常简单,我尝试以 1:1 的比例复制它,但没有成功。
const char *name() {
const char *n = package->Name();
if (n == NULL)
return "";
return n;
}
这通常会返回一些垃圾字符串,看起来像是错过了空终止。有趣的是,存储库中同一组中包的所有字符串都将具有 相同 垃圾文本,而本地安装的包将具有 NULL 指针,因此将返回空字符串。
有什么想法吗?我相信我正确打开了 pkgCache 并且迭代器不是 NULL。调试 libapt 时在线查看的地方也不多,因此任何参考资料也会有所帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)