c++ - 确定提交作者是否未初始化
问题描述
我正在尝试在我的程序中使用 libgit2 API。我必须遍历提交并将提交与其父级进行比较,我还需要每个修改的作者。我正在 Linux 内核上测试程序,其中有提交的作者在某种程度上无效:调用该git_commit_author
方法确实提供了一个git_signature
对象,但name
andemail
字段未初始化。
有没有办法,也许是一个告诉作者无效/未初始化的 API 调用?我已经尝试使用std::isgraph
来确定一个字符name
是否是图形的,但是当未初始化的字段为空时它仍然会引发段错误。
const git_signature* commitAuthor = git_commit_author(job._commit);
if (commitAuthor && !std::isgraph(commitAuthor->name[0])) // segfault happens here
return;
解决方案
推荐阅读
- tornado - 向所有套接字发送响应时 Tornado 中的断言错误
- haskell - 如何从嵌套的同义词类型中获取价值
- http - 通过 http 请求远程启动服务
- spring - Spring Boot Admin 多次登录到受保护的 Actuator
- python - Seaborn:线图看起来像阶梯图
- mysql - sequelize 中的嵌套查询
- jquery - 无法禁用下拉列表中的某些特定选项
- javascript - React Native 无法访问 api
- android - 当用户启动一些选定的应用程序时启动我的活动
- sql - 如何获取第一个表的每个 ID 的电子邮件 ID(一个值),然后在 SQL Server 2012 中将第二个表中的电子邮件名称显示为逗号分隔?