工作之踩坑记录

1.i386架构之atol函数使用导致的业务程序错误:

情景:将框架传递的链接地址采用整形保存传输,在i386架构上导致地址比较大,采用atol转型可能导致数据被截断出现异常。

方案:采用atoll更大的数据类型进行处理即可避免该问题。

2.Json库使用注意long int问题导致编译不通过问题:

情景:

cpp 复制代码
Json::Value result;

long int pid = 10001;
result["pid"] = pid;

如上编译会报错:

cpp 复制代码
error: convert from 'long int' to 'const Json::Value' is ambiguous

方案:采用跟Json库携带定义的想通过的类型进行使用:

cpp 复制代码
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
    }
}
相关推荐
code monkey.24 分钟前
【寻找Linux的奥秘】第一章:基础指令
linux·运维·服务器
qziovv24 分钟前
Ubuntu通过局域网共享文件夹实现文件夹的连接
linux·运维·ubuntu
海鸥8129 分钟前
在 k8s中查看最大 CPU 和内存的极限
linux·容器·kubernetes
森焱森31 分钟前
AArch64架构及其编译器
linux·c语言·单片机·架构
rkmhr_sef42 分钟前
Nginx反向代理出现502 Bad Gateway问题的解决方案
运维·nginx·gateway
Lin桐1 小时前
②Modbus TCP转Modbus RTU/ASCII网关同步采集无需编程高速轻松组网
linux·网络协议·tcp/ip·网络安全·缓存·信息与通信·信号处理
罗技1231 小时前
Easysearch 使用 AWS S3 进行快照备份与还原:完整指南及常见错误排查
linux·云计算·aws·es·easysearch
anguruanjian2 小时前
安固软件指南:确保外发文件安全的全面策略
服务器·网络·安全·企业微信·安固软件
孙同学_2 小时前
【Linux篇】调试器-gdb/cgdb使用
linux·运维·服务器
自由鬼2 小时前
免费开源抓包工具Wireshark介绍
运维·服务器·网络·测试工具·网络安全·wireshark