随笔分类 - C++/C
摘要:void abc(int &a) { std::cout <<"abc1:"<< a << std::endl; } void abc(int &&a) { std::cout <<"abc2:"<< a << std::endl; } int main() { abc(1); int a = 1;
阅读全文
摘要:如果结构体中有string,不能使用memcpy,不然会有double free问题,可以使用std::move #include <cstring> #include <cstdio> #include <iostream> #include <iostream> #include <tuple>
阅读全文
摘要:#include <stdlib.h> #include<stdio.h> #include <time.h> int main() { time_t nSeconds; char a[256]; time(&nSeconds); //char a='1'; //printf("%ld",nSeco
阅读全文
摘要:一、编写项目 1、创建一个目录,新建一个test.c代码文件 2、新建一个CMakeLists.txt 3、CMakeLists.txt内容 cmake_minimum_required(VERSION 3.21) project(hello_test) AUX_SOURCE_DIRECTORY(.
阅读全文
摘要:打开Settting.json按下图增加chcp 65001
阅读全文
摘要:新建一个sh文件 #!/bin/sh sudo nohup xxxxx >/dev/null 2>log & 上面是保存错误信息到log文件里 Linux的3种重定向 0:表示标准输入 1:标准输出,在一般使用时,默认的是标准输出 2:标准错误信息输出 什么也不保存 nohup ./program
阅读全文
摘要:valueType - Required. The data type of the value. Supported types are Bool, Int8 - Int64, Uint8 - Uint64, Float32, Float64, String, Binary, Object and
阅读全文
摘要:1、描述 服务器端使用InterrogationHandler回调函数来处理Interrogation请求。根据QOI(询问限定符)的值,返回不同的信息对象。对于一个简单的系统,仅处理 总查询 请求就足够了(QOI = 20)。QOI值21-36用于询问组(1-16)。由从属实施者将信息对象分配给询
阅读全文
摘要:1、control reaches end of non-void function [-Wreturn-type] 这个是代码分支没有return. 如果你如果使用到这个代码返回值判断的话,可能会返回一个随机的数,会导致程序随机错误。 2、printf("%d",lValue) 类似上面这种lon
阅读全文
摘要:1、获取主站报文公共地址 int inCa = CS101_ASDU_getCA(asdu); 2、主动关闭主站链接 IMasterConnection_close(connection); 3、回复主站确认 IMasterConnection_sendACT_CON(connection, asd
阅读全文
摘要:1、关于CFLAGS CFLAGS 表示用于 C 编译器的选项, CXXFLAGS 表示用于 C++ 编译器的选项。 今天在一个项目改用C++编译后,makefile编译一直不成功,研究发现是没有使用CXXFLAGS. 2、make传递参数 test=11 test1: echo $(test)"-
阅读全文
摘要:注意路径如果出错的话init 返回-1.,使用方法 main.c里添加全局变量 zlog_category_t *zc; //初始化日志 char conf_file[1024] = {0}; sprintf(conf_file, "%s/%s", CONFIG_DIR_PATH, ZLOG_FIL
阅读全文
摘要:方法一 -Wl,-Bstatic指示链接libtest.a静态库, -Wl,-Bdynamic指示链接系统动态库。 make文件示例: LIBS += -Bstatic -lcjson LIBS += -Bdynamic -lmosquitto 方法二 gcc test.c -static
阅读全文
摘要:手头使用的是libmodbus库,不支持rtu over tcp模式。看官方没有增加这个功能的打算,于是在现有tcp代码基础上重构了下,增加了rtu over tcp支持,目前简单使用没有问题。 代码放到 https://github.com/zhaogaojian/libmodbus_rtu_ov
阅读全文
摘要:1、使用MThing模拟数据 注意: (1)箭头处一定留空,不然只有本机能收到数据,一开始误以为这是绑定监听IP,被坑了好长时间。 会提示:error connection reset by peer: read (2)如果端口配置错误会提示: [Errno 9] Bad file descript
阅读全文
摘要:今天在一个问题上研究了几个小时,最终解决,问题是:在Linux C中,如果不声明函数,也是可以编译的,但是会不检查函数形参类型,假如类型错误的话,不会提示。 用简化代码重现问题: //网络结构体 typedef struct tcp_info{ char ip[32]; char port[16];
阅读全文
摘要:1、linux下直接 ./configure 在src下make即可 2、armlinux下 ./configure CC=arm-linux-gnueabihf-gcc --host=arm-linux --target=arm-linux 然后在src下make即可 编译后效果
阅读全文
摘要:在windows下使用vscode编辑linux c代码时,会有红色波浪线,可以简单修改解决
阅读全文
摘要:使用libmodbus modbus_set_error_recovery(ctx, MODBUS_ERROR_RECOVERY_LINK | MODBUS_ERROR_RECOVERY_PROTOCOL); 遇到错误 查了一圈原因,发现因为用的g编译导致,改成gcc就可以了。 原因 C语言中枚举的
阅读全文
摘要:ModBus与JBus协议是兼容的,他们的数据包的结构是相同的。唯一的区别在于他们对数据存储的物理地址的表示相差为“1”。JBus地址与绝对地址相同,例如他为1时,ModBus地址为0。
阅读全文