工作之踩坑记录

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
    }
}
相关推荐
江湖有缘2 小时前
基于华为openEuler系统部署Gitblit服务器
运维·服务器·华为
yuanmenghao2 小时前
Linux 性能实战 | 第 10 篇 CPU 缓存与内存访问延迟
linux·服务器·缓存·性能优化·自动驾驶·unix
EnglishJun2 小时前
Linux系统编程(二)---学习Linux系统函数
linux·运维·学习
QT.qtqtqtqtqt2 小时前
SQL注入漏洞
java·服务器·sql·安全
小Pawn爷2 小时前
2.Docker的存储
运维·docker·容器
CaracalTiger2 小时前
OpenClaw-VSCode:在 VS Code 中通过 WebSocket 远程管理 OpenClaw 网关的完整方案
运维·ide·人工智能·vscode·websocket·开源·编辑器
qq_5470261792 小时前
LangChain 1.0 核心概念
运维·服务器·langchain
VekiSon2 小时前
Linux内核驱动——设备树原理与应用
linux·c语言·arm开发·嵌入式硬件
Trouvaille ~3 小时前
【Linux】进程间关系与守护进程详解:从进程组到作业控制到守护进程实现
linux·c++·操作系统·守护进程·作业·会话·进程组
晚霞的不甘3 小时前
Flutter for OpenHarmony 打造沉浸式呼吸引导应用:用动画疗愈身心
服务器·网络·flutter·架构·区块链