自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (7)
  • 收藏
  • 关注

原创 android 编译 tassl

#!/bin/bash# Cross-compile environment for Android on ARMv7## Contents licensed under the terms of the OpenSSL license# http://www.openssl.org/source/license.html# Set ANDROID_NDK_ROOT to you N...

2020-04-16 21:51:18 310

原创 通用单向链表和双向链表

单链表/***module: singly linked list*/#ifndef __SLIST_H__#define __SLIST_H__typedef struct s_entry_s{ struct s_entry_s *flink;}s_entry_t;//单链表typedef struct slist_entry_s{ s_entry_t* hea...

2020-03-21 11:18:42 887

原创 json解析库-jansson 使用

json解析C库很多,比较常用的一个就是cjson,但是cjson读取文件的时候,出错的时候,不能确定到底在哪一行,我觉得这是 jansson库一个不错的地方。

2020-02-09 11:29:27 2227

原创 QT 实现文件传输,字符聊天

QT 实现文件传输,字符聊天可接定制。代码地址:QTCPServer.rar-C++文档类资源-CSDN文库

2022-01-15 16:25:01 893

原创 简单工厂--工厂方法--抽象工厂

工厂方法————创建型设计模式今天要和大家分享的是,工厂方法。考虑这样一种场景,你创建了一个运输管理程序, 第一个版本,你的应用程序只有卡车运输。因此你的所有代码都在卡车(Truck)类中。一段时间之后,你的App很受欢迎,很多海运公司希望你的App支持海运。这是个好消息,代码怎么办呢?你的大多数代码都在Truck类中,增加Ship类,需要改动整个代码仓库,另外,再过段时间,如果你想添加另外一种运输类型到你的App中,你又得再做一次同样的改变和Ship 一样。最后你的代码将变得混乱,各种运输对象的切

2021-08-06 22:44:37 112

原创 设计模式总览

    计划写个设计模式的专栏,权当个人学习的总结,加深对设计模式的理解,同时也希望,自己以后在代码设计上能信手拈来。    大家学习设计模式, 有没这样一种感觉,感觉作者讲的很明白了,但是不知道代码怎么写,或者感觉懂了,但是又觉得实际当中没那样的应用场景。    我觉得这有多方面的原因,一方面编程经验比较少,我说的这个经验少不是工作年限少,而是接触的各种业务类型少,因为你工作了很多年,但是日复一日的做同样的事情,接触面也广不了。就有一种感觉,觉得作者为了讲设计模式而去虚构一种场景。另一方面,虽然基础了

2021-08-06 18:12:25 92

原创 【C语言从入门到构建大型项目】-- 第五章:函数

【C语言从入门到构建大型项目】-- 第五章:函数本章内容:main 入口参数解析函数调用swith 的使用前面章节讲解的时候,代码都很短,都不超过一百行,一个入口函数 main 就解决了。但实际项目,小则几千行,多则几万行、十几万行。不可能在一个入口函数实现所有的功能,C语言为了解决这个问题,就有了函数的概念,我们可以定义很多函数,让不同的功能在不同的函数中进行时间,然后在 main 函数中进行调用。今天我通过一个计算两个数加减乘除结果的小程序,来说明函数的使用。小程序这样使用:.

2021-07-11 13:16:05 109

原创 C语言 hash 与 ini 文件读取的实现

//hash.h/** * **/#ifndef __DATASTRUCT_CHASH__#define __DATASTRUCT_CHASH__#include <stdint.h>#define DEFAULT_SIZE 13typedef void* (*func_clone_key)(void* key); // 用于克隆键对象typedef void (*func_destroy_key)(void* key); // 用于释放键对象typedef v

2021-07-04 12:08:36 147

原创 【C语言从入门到构建大型项目】-- 第四章:循环 do{}while(0) 妙用

有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。为了适用各种场景,C语言提供了多种控制结构。循环语句允许我们多次执行一个或多个语句。随便找一本书都可以找到关于 for ; while ; do while 的使用示例,这里我就不赘述了。我要分享的是,在实战中常用的一个技巧 do{} while(0);场景一:多逻辑结构去掉goto考虑这样一种情况,比如要实现一个目标的时候,有很多操作,每一个操作失败时,都进行退出,并释

2021-02-21 11:49:40 142

原创 【C语言从入门到构建大型项目】-- 第四章:基本逻辑结构

个人微信:jxdeng64判断判断的结果,有两种情况,真和假。在实际编码中,通过判断结果真或假来执行一定的语句。我们把非零和非空的值假定为trueif esle比如我们通过判断学生的分数是否大于60来显示是否及格。#include <stdio.h>#include <float.h>int main(){ int score = 59; if (score >= 60) { printf("及格\n"); }

2021-02-16 10:25:39 226

原创 【C语言从入门到构建大型项目】-- 第三章:基本数据类型

在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。C类型可以分类为一下类型:基本类型算术类型,包括两种类型:整数类型和浮点类型枚举类型也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。void 类型指定没有可用的值,一般用在函数参数和空指针扩展类型指针类型、数组类型、结构类型、共用体类型和函数类型具体实例:整形类型类型 存储大小 值范围char 1 字节 -128 到 127 或

2021-02-16 09:24:52 128

原创 【C语言从入门到构建大型项目】-- 第一章:Hello World 讲解

第一章:Hello World 讲解这是我们写在《环境搭建》那一章的 “hello world” 程序。#include <stdio.h> int main() { printf("Hello World.\n"); return 0; }先看看整体结构。先是一个头文件包含语句,#include <stdio.h>,为什么要包含文件,因为后面用到了printf函数,printf函数的声明在 stdio.h文件中,如果不包含的话,会警告hello

2021-02-15 17:48:42 1317 4

原创 【C语言从入门到构建大型项目】-- 第二章:gdb调试

在跟大家讲解C语言基础之前,先和大家分享下,怎么在linux下进行代码调试。为了加快后面的学习,因为很多时候,在对语法不熟悉的情况下,没有什么是比直接调试代码更好的了。但是,我不推荐,一遇到代码不符合预期运行时就进行调试,而是先在自己的脑袋里运行几遍,实在理解不了,跑不顺时,再用调试工具进行调试。该篇为调试入门篇,后续会有高级部分。照着一步步做,看完就学会了!可执行文件调试从一段简单的代码开始!#include <stdio.h>int main(){ int i = 0; i

2021-02-06 10:20:41 432 2

原创 【C语言从入门到构建大型项目】-- 第零章:Linux 环境搭建

C语言从入门到构建大型项目–Linux 环境搭建今天要和大家讲解的是,Linux 环境下C编程环境的搭建。对于源代码变成可以用的程序,只需要编译器,如果有其他库,还需要用到链接器。对于源代码的编辑,随便一个编辑器就行。编译器、连接器,一个 gcc 就搞定。当然,你也可以用 IDE(Intergated Develop Environment) 将这两者搞定。但是还是推荐使用编辑器加自编写编译文件(Makefile文件)的方式。××编辑器××Linux 下常用到的编辑器就两个,一个是 emacs,

2021-01-31 10:16:56 189

原创 boot.asm OS引导程序

直接上源代码了。org 0x7c00start: mov ax, cs ;; 实模式 cs 为 零 mov ss, ax ;; mov ds, ax mov es, ax mov si, msg ;; 指到字符串位置print: mov al, [si] add si, 1 ;; cmp.

2020-05-23 23:07:02 275

原创 scl cmap 的实现

数组bucket_array挂链表的形式,数组的每个下标当着一个hash 值。一个键hash 完之后,与 数组大小进行取余,得到的数字就是数组的小标,新的节点就往下挂载节点。#ifndef __CMAP_H__#define __CMAP_H__#include "dscommon.h"#ifdef __cplusplusextern "C" {#endifint key_cmp_int(void* key1, void* key2);int value_cmp_int(void* k

2020-05-17 21:58:44 306

原创 nginx-1.12.1代码移植

提取代码中的数据结构,用于自身的项目。代码地址:https://gitee.com/jesson-deng/nginx1.12.1-transplant

2020-05-05 17:33:01 135

原创 cmake 模板

不断更新中https://github.com/jxdeng3264/cmake-module

2020-05-04 18:45:03 126

原创 nginx 自定义 etag算法为文件md5

这里有篇关于 etag 的文章。https://www.cnblogs.com/yangguoe/p/8462566.html实现代码如下:https://github.com/jxdeng3264/nginx-static-etags.git在 :https://github.com/z360394624/nginx-static-etags的基础上解决了内存泄露以及,...

2020-04-30 14:20:25 523

原创 nginx疑问

1. ngx_log_error write 之后为什么不用 close ?2.

2020-04-30 08:54:18 101

原创 nginx源码阅读

1. 模块是怎么加载的2. log 日志是怎么处理的3. 连接是怎么产生的4.怎么连接后台业务服务器的5.

2020-04-19 12:39:59 86

原创 mac 下编译 tassl,arm64 armv7 armv7s 架构

由于官方都没有相应的编译脚本,自己也摸索了好久,特意记录下来。源码目录 TASSL-xx脚本文件 compile-v7.sh compile-v7s.sh compile-arm64.sh内容如下:#!/bin/bashOUT_DIR=out-v7rm -rf $OUT_DIRcd TASSL-v7make clean # 设置编译器export CC="c...

2020-04-16 19:53:53 489 6

原创 C语言提取字符串中的内容

int main(){ char *src = "1998-08-09"; char year[10]; char month[10]; char day[10]; sscanf(src, "%[^-]-%[^-]-%s", year, month, day); printf("%s-%s-%s\n", year, month, day); return 0;}

2020-04-15 22:30:17 2407

原创 [nginx] 编译

这里提到的代码和脚本都是在 仓库 https://gitee.com/jesson-deng/nginx-1.12.2-code-reading.git 中。 ./configure: error: ngx_http_lua_module requires the Lua library.安装lua 的开发环境yum install lua-devel运行 nginx-1.12.2-c...

2020-04-12 23:16:15 100

原创 makefile 模板

.PHONY : all clean rebuildMKDIR := mkdirRM := rm -frCC := gccDIR_DEPS := depsDIR_EXES := exesDIR_OBJS := objsDIRS := $(DIR_DEPS) $(DIR_EXES) $(DIR_OBJS)EXE := app.outEXE := $(addprefix ...

2020-03-29 22:34:45 133

原创 【数据结构】如何写好面试中的链表【上】

相信很多刚找工作时的同学,都遇到过面试时被问链表的情景,有些面试官还喜欢直接要你在纸上写。

2020-03-04 09:19:49 342

原创 【jni】linux 下生成 jni 并进行测试

文件目录第一步, 通过 JNIDemo.java 文件生成接口函数 , .h 文件package com.junxingpack.test;public class JNIDemo {//定义一个方法,该方法在C中实现public native void testHello();public static void mai...

2020-02-24 09:59:19 305

原创 【C语言从入门到构建大型项目】-- 第零章: 环境搭建

一、Windows 下环境搭建a. 下载IDE(Integrated Development Environment),写代码的工具,我这里选择的是 Visual Studio 2013b. 安装之后,可以在系统中找到 Visual Studio 2013c. 现在,我们来建立第一个HelloWorld程序。运行Visual Studio 2013后,可以看到...

2020-02-16 11:28:07 434

原创 【C语言从入门到构建大型项目】-- 目录

本专栏从实战的角度,从C语言基础语法讲起,每一节都有实例代码,鼓励大家边学习,边动手学,如果只是学学理论的话,我觉得随便找一本教材都比我的专栏写的好。动手练习后看到自己的成果,也会更有动力继续学习下去。为什么很多学生在学校里面学完C语言之后,觉得没什么用,最后放弃,原因就是学完那些语法之后,只做过书上的几个练习,没有写过其他代码,不知道C语言到底能干什么。下面是本专栏的目录,方便大...

2020-02-16 10:40:03 1041 1

原创 一段简单高效的冒泡排序代码

这段代码思路是一个朋友在群里分享的,我简单看了下,发现思路真的很好。下面是我的简化版,先给贴出代码。void bubble_sort(vector<int> &vec){ int i = 0; while (i < vec.size() - 1) { if (vec[i] > vec[i + 1]) { ...

2020-02-15 13:24:00 572

原创 Gmssl 编译去掉版本号以及改库名

1. 下载源码https://github.com/guanzhi/GmSSL.git解压,进入源码目录2. 编译为了避免与系统的 libssl.so 和 libcrypto.so 冲突,建议设置 prefix。./config --prefix=/your/lib/save/path打开 Makefile 文件,大概18行SHLIB_MAJOR=1SHLIB_MI...

2020-02-13 11:29:05 864

原创 fwknop 如何防重放攻击

fwknop是 FireWall KNock OPerator 的简写,实现了一种叫单包授权(Single Packet Authorization (SPA))的方案。本文将通过解析 fwknop 源码,来讲解fwknop 是怎么做到防重放攻击的。

2020-02-13 09:21:27 1371 1

原创 emacs常用按键/命令

命令说明:C-x -> Ctrl+xM-x -> Alt + x (windows)Meta+x (mac os)C-x C-f 先同时按 Ctrl+x 再同时按 Ctrl+f, 你也可以一直按着 Ctrl,再先按x, 再按 f文件操作类C-x C-f 打开文件C-x C-s 保存当前buffer到文件C-x C-c 关闭...

2020-02-09 09:32:05 233

原创 类中或结构体中含队列,的拷贝构造函数的书写

Node::Node(){ }Node& Node::operator=(const Node&ths){ this->_q = ths._q; return *this;}//void Node::Destroy()//{////}Node::~Node(){ std::cout<<"my destro...

2015-12-03 11:11:51 1110

原创 leetcode Add Two Numbers

#include #include using namespace std;/** * Definition for singly-linked list. */struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public

2015-06-03 10:08:06 386

转载 lua中的序列化

引用:http://blog.codingnow.com/cloud/LuaSerializeTable/--打包数据table, --1.支持table 嵌套和循环引用 2. 支持 number, string, booleanfunction TableToString(t) local mark={} local assign={} local function

2015-05-12 16:39:08 785

原创 使用epoll和多线程实现服务器和客户端的代码

关于epoll 和多下

2014-09-12 11:53:14 740

原创 保存图片感兴趣区域

#include "cv.h"#include "highgui.h"void videoFork(CvCapture *capture){ int mod = 30;////每十张取一张 int count=0; int iimage=0; char imagename[20]="\0"; if( capture==NULL) return ; IplImage *sou

2013-10-25 10:10:54 842

原创 QT获得目下的所有文件名

QString path = "./testSourImage"; QDir dir(path); if( !dir.exists() ) return ; dir.setFilter( QDir::Files); dir.setSorting(QDir::DirsFirst); QFileInfoList list = dir.entryInfoList(); std::ofst

2013-10-24 14:25:44 711

原创 opencv

矩阵操作#include "cv.h"#include "highgui.h"int main(int argc ,char **argv){double a[]={1,2,3,4,5,6,7,8,9,10,11,12};CvMat Ma = cvMat(3,4,CV_64FC1,a);int n = Ma.cols;float *data = Ma.dat

2013-10-03 11:32:19 1081

QTCPServer.rar

Qt实现的文件传输以及字符聊天

2022-01-15

Lua各版本源码阅读.md

lua源码的各个版本,内含各个版本的注释

2021-08-30

文件压缩程序基于hufferman编码技术

使用c++实现的文件压缩程序,这是自己在实习期的一个测试。

2014-10-15

基于epoll 的服务器,客户端模型

基于epoll 的多线程,服务器客户端模型。 网络模块和数据处理模块进行了分离。

2014-10-15

epoll服务器、客户端模型

基于epoll 和 pthread 的服务器和客户端模型,网络部分和数据处理部分进行了分离。

2014-10-14

基于huffman编码的文本压缩程序

学校的作业,压缩原理基于huffman编码。供初学者数据结构的同学参考。

2013-01-16

大整数乘法--模拟相乘原理

在学校的时候写的作业,打整数乘法,希望能给正在写,但不知如何下手打整数的同学一点思路,同时也共同学习一下。

2012-10-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除