来自 libapt-pkg 的损坏的字符串

问题描述

我正在尝试为 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 (将#修改为@)