
C
___Eirc
Hello,Hell. 个人邮箱:takumanatata@foxmail.com; 不常上来;不搞嵌入式很久,写前端去了。
展开
-
SNMP -- snmp协议报文说明
SNMP消息类型|后接消息长度 (2个字节)30 xxSNMP版本号(3个字节) 02 01 00 (02为数据类型integer|01为此段消息长度,00为snmp版本1|01为v2c | 02为snmpv2|03为snmpv3)SNMP共同体(2字节+具体共同体字符长度) (04 + 数据长度 + 实际共同体字符)SNMP PDU类型 (2个字节) (a0|a1|a2|a3|a4 ...原创 2020-03-23 16:30:00 · 4693 阅读 · 0 评论 -
linux中的container_of宏
linux内核中 container_of 的宏;直接使用#include <stddef.h>中的container_of 出现编译过不了;所以把这个宏摘抄出来#define __compiler_offsetof(a,b) __builtin_offsetof(a,b) #undef offsetof#ifdef __compiler_offsetof#defin...原创 2018-10-26 14:33:28 · 248 阅读 · 0 评论 -
Makefile文件基本格式
以下是Makefile的基本模板#指定编译器CC = g++#指定编译参数CFLAGS = -std=c++11#指定头文件路径,此处用于指定非标准库的头文件路径INC = -I./ -I /usr/include#指定要链接的动态库或静态库 -L是指定动态库路径,非标准的动态库需要此参数LIBS = -lm -ldl -L/mylibs/xxx -lxxx#把上面放一...原创 2018-10-10 15:17:43 · 7485 阅读 · 2 评论 -
C语言基于printf下加入debug等级
实现方法1:#include <stdio.h>unsigned int debugflags = 1; //这里设计debug值,我默认全部输出#define mprintf(level,args...) \do { if((debugflags & level)) printf(args);} while(0);//或者使用此方式#define mpr...原创 2018-10-14 00:38:50 · 1648 阅读 · 1 评论 -
CRC-16 / MODBUS 校验计算方法
CRC-16 / MODBUS :1)CRC寄存器初始值为 FFFF;即16个字节全为1;2)CRC-16 / MODBUS的多项式A001H (1010 0000 0000 0001B) ‘H’表示16进制数,‘B’表示二进制数计算步骤为: (1).预置 16 位寄存器为十六进制 FFFF(即全为 1) ,称此寄存器为 CRC 寄存器; (2).把第一个 8 位数据与 16...原创 2018-07-27 16:31:03 · 48554 阅读 · 30 评论 -
Linux线程编程入门案例
1,使用旅客等出租车模型2,使用线程编程:线程锁,线程信号3,设计要求: 1),没有出租车,则旅客等待,且排队。 2),有出租车,没有旅客,则出租车排队,先到出租车先搭载旅客 3),设计中使用旅客人数统计count,为了解决如下逻辑在 Linux 平台,Jack 到了站台一看没人,触发的条件变量被直接复位,于是 Jack 排在等待队列里面。来迟一秒的...原创 2018-07-24 15:54:01 · 179 阅读 · 0 评论 -
实现格式化输出
代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stdarg.h>void ShowMessage(char *,const char *,...);int main(void){ ShowMessage("123.txt","%d ...原创 2018-04-13 18:29:37 · 349 阅读 · 0 评论 -
C语言中调用LUA(3)--往Lua脚本中传递变量
1,C代码#include #include #include #include #include int f(lua_State *L,int x, int y){ int z; lua_getglobal(L,"f"); //获取test.lua中的变量名称 并压入栈中 lua_pushnumber(L,x); //往栈中压入参数原创 2017-12-15 18:04:23 · 1549 阅读 · 0 评论 -
获取SYSTEM()执行结果
1,输出重定向实现此方法比较简单,步骤如下1)system("date > tmp.txt"); --将date指令的输出重定向到tmp.txt文件中2)使用open();read();等操作函数来获取tmp.txt的内容2,重定向标准标准输出+管道实现1)将标准输出重定向到管道:int fd[2],backfd;pipe(fd);backfd=d...原创 2017-12-18 10:13:28 · 8536 阅读 · 0 评论 -
Linux下编译动态库及使用
说明:linux下生成和使用动态库的步骤如下:1,编写源文件。2,将一个或几个源文件编译链接,生成共享库。3,通过 -L<path> -lxxx 的gcc选项链接生成的libxxx.so。4,把libxxx.so放入链接库的标准路径,或指定 LD_LIBRARY_PATH,才能运行链接了libxxx.so的程序。 一, 生成动态库1)test.c文件#...原创 2017-12-20 18:14:43 · 23074 阅读 · 0 评论 -
Linux下串口通信
1,串口操作#include "uart.h"#define FALSE -1#define TRUE 0int uart_set(int fd,int bautrate,int flow_ctl, int databites,int stopbits, int parity){ int i = 0; int baut_rate[]={B115200,B1原创 2017-12-18 14:40:52 · 486 阅读 · 0 评论