- 博客(15)
- 资源 (10)
- 收藏
- 关注

原创 设计模式的C语言应用---编码实践
编写这篇文章的是为了了解C语言中使用设计模式的思想,由于本人比较熟悉C++的设计模式,后来在用C语言设计时,总是觉得C++中的设计模式在C中应该也有体现,特别在看Linux内核时,总是感觉里面应该用了设计模式的思想,但又无从入手,所以后面的文章将围绕设计模式的C语言应用,编写代码实践。若有时间再实践一遍C++的过程。后面的实践的代码都是参考以下博客编写https://bbs.huaweic...
2020-02-11 22:48:28
206
原创 Typora使用之改变标题控制使之美观
概述因为想要使用一个可插入代码的软件,发现很多人都在使用markdown语法来实现代码的插入,因此,选择用Typora 免费软件准备后续作为开发时的代码记录,本文讲述如何改变使Typora的标题变得漂亮。环境以及修改的文件环境:Windows10修改的文件:C:\Users\Administrator\AppData\Roaming\Typora\themes\github.css(由于我使用的主题是github,所以修改的是github.css)主题一共有:改.
2022-01-09 19:26:02
806
原创 实现ftpserver
本文根据在网上已有的ftpserver实现,但是根据那个源代码无法运行成功,因此,这里是基于那个代码的基础上,修改的(网址忘记了)。增加了一些命令,以及界面交互和bug. 目的在于熟悉ftp的协议以及通信。环境:Ubuntu1. ftpserver源码实现:/* @brief: ftp server*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <un
2021-11-29 21:26:13
2923
原创 信息检索导论-permuterm index
permuterm index是专用于通配符查询的索引结构的一种方法:方法:$表示一个词的末尾(正则),即如果ab,则表示成ab$,并进行轮排,形成ab$,$ab,b$a,并指向ab;在处理单个通配符查询时,如果要查*b,则先添上$,然后旋转,使得*在词的尾端,即b$*,并在搜索树中查找。发现b$a满足要求,则ab满足要求。在处理多个通配符查询时,如果要查询a*b*,则先添加$即a*b*$,然后旋转为$a*b*,先查询$a*,取得的结果再通过a*b*过滤即可。缺点:词典会变得很大。以下代
2021-11-27 19:03:52
759
原创 关于Linux i2c调试心得(读数据时返回NACK的问题)
最近遇到一个i2c访问比较诧异的问题:现象如下:1. i2c上的设备是e2prom, e2prom的访问方式是block形式的(相当与1个block,对应一个i2c地址,一共有8个block,因此,用i2c tools工具去检测的时候,发现i2cdetect -r -y 5,检查的时候,会检查到8个地址,即从0x50-0x57)。 按照理解这其实就相当与挂了8个i2c设备2. 使用i2cdump -f -y 5 0x50是发现dump的数据固定的地址显示XX,体现是,调试发现显示XX的意味这..
2021-11-27 18:44:58
3972
原创 Linux访问ioctl访问失败的问题
今天遇到一个ioctl访问失败的问题,做个记录,主要是用户态是32位,内核态时64位的。对于字符设备,内核中ioctl的挂接有不同,一:写64位driver驱动时,必须实现compat_ioctl实现,用户态是32位时,会调用这个接口,否则会出现ioctl调用失败的情况。https://www.cnblogs.com/pengdonglin137/p/8111272.htmlLinux内核中struct file_operations含有下面两个函数指针:struct file_operat
2020-11-07 23:02:09
6634
原创 Linux SPI驱动调试的心得
1.SPI 是全双工串行通信总线,通过CS片选来决定与哪个设备通信(如何操作cs由使用的单板的spi_controller决定),以下记录是本人自己使用的环境的情况2.一般一次数据通信时(读或者写),会根据传入参数(模式,cs, 速率..)比较与spi_controller当前配置是否相同,若不相同,则会重新配置spi_controller, 即spi_setup3.一次通信时(假设cs为cs0),需要先根据参数,准备好spi_controller(即是否重新设备spi_controller,即sp
2020-08-08 10:42:00
1842
原创 Linux相关知识整理
1.Linux内核DTB文件启动的几种方式https://www.cnblogs.com/iot-yun/p/11403498.html
2020-07-26 21:14:14
136
原创 设计模式的C语言应用---编码实践(命令模式)
#include "stdafx.h"#include <string.h>/*https://bbs.huaweicloud.com/blogs/109745向对象发送一个请求,但是并不知道该请求的具体接收者是谁,具体的处理过程是如何的,只知道在程序运行中指定具体的请求接收者即可,对于这样将请求封装成对象的我们称之为命令模式。所以命令模式将请求封装成对象,以便使用不...
2020-02-26 20:43:23
230
原创 设计模式的C语言应用---编码实践(观察者模式)
#include "stdafx.h"/* https://bbs.huaweicloud.com/blogs/101255 观察者模式定义了对象之间的一对多依赖关系,这样一来,当一个对象改变状态时, 它的所有依赖者都会收到通知并且自动更新。 在这里,发生改变的对象称之为观察目标,而被通知的对象称之为观察者。 一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系, 所以么...
2020-02-26 20:38:47
233
原创 设计模式的C语言应用---编码实践(责任链模式)
#include "stdafx.h"/* 责任链 https://blog.youkuaiyun.com/devcloud/article/details/95616544 责任链将需要触发的对象组成一条链,发送者将请求发给链的第一个接收者, 并且沿着这条链传递,直到有一个对象来处理它或者直到最后也没有对象处理而留在链末尾端. 责任链在C语言里也是实现形式非常明...
2020-02-12 19:05:21
290
原创 windows中list_head的C的实现
list_head的C的实现服务于本人编写的设计模式的C语言运用实践#pragma once#include "stdafx.h"struct list_head{ struct list_head* prev; struct list_head* next;};#define LIST_FOR_EACH(pos, head) \ for(pos=(head)->ne...
2020-02-11 23:22:41
425
原创 设计模式的C语言应用---编码实践(状态机模式2)
#include "stdafx.h"/*https://bbs.huaweicloud.com/blogs/111099基于state_mode_simple1网址上的 示例2: 有一个灯,按下开按钮,就会开灯,按下关按钮就会关灯。 和一般等不同的是,两次开之间的灯的明暗不一样。 也就是说,第一次开的时候,是高亮,关灯后,再开是低亮,下次再开是高亮,循环往复。这就是一...
2020-02-11 23:01:10
179
原创 设计模式的C语言应用---编码实践(状态机模式1)
#include "stdafx.h"/* https://bbs.huaweicloud.com/blogs/111099 简单状态机模式实现 有一个灯,按下开按钮,就会开灯,按下关按钮就会关灯。 这就是一个很典型的简单的有限状态机。简单的描述有2个状态,关灯[STATE_OFF],亮[STATE_LIGHT_ON] 。 有两个事件,开和关按钮。这两个...
2020-02-11 22:51:38
210
现代物流与自动识别技术.ppt
2012-03-08
wince API Wince 的API函数
2010-08-02
软件的白盒测试技术(逻辑覆盖 基本路径覆盖 )
2010-06-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人