工作之踩坑记录
2023-12-13 21:37:05
1.i386架构之atol函数使用导致的业务程序错误:
? ? ? ? 情景:将框架传递的链接地址采用整形保存传输,在i386架构上导致地址比较大,采用atol转型可能导致数据被截断出现异常。
? ? ? ? 方案:采用atoll更大的数据类型进行处理即可避免该问题。
2.Json库使用注意long int问题导致编译不通过问题:
? ? ? ? 情景:
Json::Value result;
long int pid = 10001;
result["pid"] = pid;
? ? ? 如上编译会报错:
error: convert from 'long int' to 'const Json::Value' is ambiguous
? ? ? ? 方案:采用跟Json库携带定义的想通过的类型进行使用:
Json::Value result;
long int pid = 10001;
Json::UInt upid = pid;
result["pid"] = upid; // 规避出现如上问题,采用同等的类型
3.Centos7.2- opendir函数打开普通文件发现ptr->d_type 类型不等于8,反而等于0问题
? ? ?方案:如果遇到该种情况,请使用stat方法判别文件类型,stat结构中定义了文件的相关节点类型值,在结合具体业务判别即可。
例如:
DT_REG == ptr->d_type
// 正常情况,文件类型 ptr->d_type == 8,
在dirent.h文件中定义.
centos7.2系统,ptr->d_type == 0,导致无法读取文件信息。可采用stat结构进行统计:
{
struct stat statbuf;
lstat(tmpPathfile, &statbuf);
if( S_ISREG(statbuf.st_mode)) // file
{
//to do
}
}
? ?
文章来源:https://blog.csdn.net/qq_26105397/article/details/133208035
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!